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.