Thema: Delphi Überlauf TMemo

Einzelnen Beitrag anzeigen

Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Überlauf TMemo

  Alt 12. Feb 2014, 19:09
Zitat von P80286:
Zum einen ist ein TMemo eigentlich nur für die Anzeige gedacht.
Ich nutze das ganze ja auch nur als Anzeige. Daher, sind die Daten nur von geringer Wichtigkeit. Ich möchte lediglich einen gewissen Zeitraum der vergangenen Daten sichtbar erhalten.

Die Lösung von:

Zitat von hathor:
Delphi-Quellcode:
const
   Memo1Limit = 10;

implementation

{$R *.dfm}

procedure TForm2.Memo1Change(Sender: TObject);
begin
   if Memo1.lines.Count > Memo1Limit then
     Memo1.Lines.Delete(0);
end;

nutze ich ja bereits. Allerdings, wird das OnChange ja bei jeder Änderung des Inhaltes ausgelöst. Soll heißen, eine Zeile hat bei mir etwa 80 Zeichen. Davon möchte ich z.B. die letzten 2000 sichtbar erhalten. Daraus folgt...

if TMemo.Lines.Count >= 2000 then TMemo.Lines.Delete[0] und das ins OnChange.

Nachteil: 80 Zeichen/Zeile -> 80 x OnChange ohne Sinn, Weiter gedacht: 80 Zeichen x 2000 Zeilen = 80.000 Zeichen -> 80.000 x OnChange, bis das erste mal die Funktion

TMemo.Lines.Delete[0] ausgeführt wird. Nicht zu vergessen, die fehlenden Sonderzeichen wie Zeilenvorschub, Leerzeichen etc..
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat