Jak w RichEdit usunąć takst z lini od17 do 23 ???

0

Jak w RichEdit usunąć takst z lini od17 do 23 ???

0
var
    i : integer;
begin
    for i := 0 to (23 - 17) do begin
        RichEdit1.Lines.Delete(16);
    end;
end;
0
var
i:integer;

begin
for i := 23 downto 17 do
Memo1.Lines.Delete(i);
end;

Uwaga: to nie to samo, co rozwiązanie Berl`a.

0

Ano nie. Ale jak Berl da 17, zamiast 16 (zakładając, że chodzi nam o linie od 17 do 23 numerowane od 0) to będzie usuwać z zakresu [17;23].

0

No właśnie ja pisałem tak, jakby były numerowane od 1.

0

<font color="green">var
i : integer;
begin
for i := 0 to (23 - 17) do begin
RichEdit1.Lines.Delete(16);
end;
end;</span>

Hmm może źle się wyraziłem, ale wydaje mi się, że nie można tak zrobić jak Berl podał. Przy usuwaniu jakiegokolwiek elementu z listy, z obsługą pętli należy jechać "od końca" bo zmienia się indexowanie elementów...

0

Dlatego też kasuję cały czas element o tym samym indexie, bo po jego skasowaniu index następnego elementu zmniejsza się o 1 i w następnym przebiegu pętli jest kasowany i sytuacja się powtarza. Chociaż może i rzeczywiście jak pętla jest od końca to kod jest bardziej przejrzysty, ale oba rozwiązania działają tak samo.

1 użytkowników online, w tym zalogowanych: 0, gości: 1