Thema: Delphi Memo zeilen Löschen

Einzelnen Beitrag anzeigen

Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

Re: Memo zeilen Löschen

  Alt 28. Nov 2005, 06:38
Zitat von turboPASCAL:
Memo1.Lines.Delete( Index ); Also für die ersten 4 Zeilen:
Delphi-Quellcode:
Memo1.Lines.Delete(0);
...
Memo1.Lines.Delete(3);
bzw
Zitat von Hansa:
Delphi-Quellcode:
...
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Delete(0);
  Memo1.Lines.Delete(1);
end;
...
Ich finde es "lustig", dass immer wieder dieser "Anfängerfehler" gemacht wird.

Wenn die 1. Zeile gelöscht wird, dann "rückt" der andere Text nach.
In der 1. Zeile steht nun die 2. Zeile (Die 1. ist ja gelöscht worden)
Wenn man nun die 2. Zeile löscht, wird ja die 3. Zeile entfernt (Die nun an 2. Stelle steht).
Es muss also noch mal die 1. Zeile gelöscht werden.

Martin hat es richtig gemacht:
Zitat von Martin K:
Was hältst du davon:
Delphi-Quellcode:
var i,j: Integer; //j: die ersten j Zeilen löschen
begin
  For i:=1 to j do
  Memo1.Lines.Delete(0);
end;
Wenn Memo1.Lines.Delete(0); 4 mal aufgerufen wird, sind die ersten 4 Zeilen gelöscht.

Alternativ könnte man auch von hinten nach vorne löschen, dann kann man durchaus auf die Einzelnen Zeilen zugreifen, da dann das "nachrücken" ohne Belang ist.

Delphi-Quellcode:
...
Memo1.Lines.Delete(3);
Memo1.Lines.Delete(2);
Memo1.Lines.Delete(1);
Memo1.Lines.Delete(0);
...
oder
Delphi-Quellcode:
...
for i downto 3 to 0 do
  Memo1.Lines.Delete(i);
...
Ich bevorzuge aber den Lösungsansatz von Martin.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat