Thema: Delphi Überlauf TMemo

Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#3

AW: Überlauf TMemo

  Alt 12. Feb 2014, 17:42
@Jens Hartmann

Also früher war die Grenze bei 64kByte, keine Ahnung seit welchem OS das nicht mehr ist. Zumindest bin ich früher dran gestoßen. Ich denke die Obergrenze dürfte die String-Größe sein, 100% sicher bin ich mir da aber nicht. Allerdings ist die Eigenschaft Text von TStrings ein String (bzw. das Ergebnis), also dürfte das stimmen.

Somit denke ich mir mal, dass if TMemo.Lines.Count >= 2000 then TMemo.Lines.Delete[0] nicht viel bringt, denn der Count ist nur der Count, und der ist Integer, also kann der Count theoretisch bis 2147483647 gehen. Vorher ist vermutlich die Kapazitätsgrenze des Strings erreicht.

Also ich würde die Länge von Text prüfen. Neigt sie ich der Obergrenze von Stringlänge, könnte man unten aufräumen. Aber Vorsicht! Man weiß ja nie wie viel Text dazu kommt.

Du könntest dir Capacity angucken, sie regelt den Puffer bei TStringList, evtl. auch procedure TStringList.Grow; , um zu sehen wie das regiliert wird.
  Mit Zitat antworten Zitat