Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - TListView schnell aufbauen


JanHH - Sa 28.08.04 02:06
Titel: TListView schnell aufbauen
Hi,

wenn man beispielsweise eine StringList, die zu einem Memo-Feld gehört, Zeilenweise mit Inhalt füllt, dann dauert das relativ lange (also z.b. 2000 Zeilen einzeln hinzufügen), weil nach jeder hinzugefügten Zeile das ganze Memo neu gezeichnet wird. Dieses Problem kann man dadurch beheben, dass man die Zeilen einer internen StringList hinzufügt, die nix mit dem Memo-Feld zu tun hat, und dann die ganze StringList einmal komplett mit sowas wie Memo1.Lines := myStringList; zuweist.

Mit einer ListView funktioniert etwas derartiges nun anscheinend nicht, man muss die Items einzeln hinzufügen, entsprechend lange kann das bei einer eher langen Liste dauern.

Aber irgendwie bin ich mir sicher, dass es irgendwie besser geht. Nur wie? Tipps?

Gruß
Jan


Delete - Sa 28.08.04 02:33

Dann unterbinde das Neuzeichnen doch einfach:

Delphi-Quelltext
1:
2:
BeginUpdate
EndUpdate


JanHH - Sa 28.08.04 05:54

Hm. Die Delphi-Hilfe sagt auch was über diese Funktionen, aber bei welchem Objekt ruf ich die denn auf? Zumindest die ListView und die Form kennen sowas nicht.


Keldorn - Sa 28.08.04 09:20

Hallo

Beginupdate und endupdate ist immer bei den items-Eigenschaften dabei.

Mfg Frank


Tino - Sa 28.08.04 10:08

Hallo!

Du rufst bevor du die eigentlichen Items der Liste hinzufügst rufst du einfach die Methode

Delphi-Quelltext
1:
Items.BeginUpdate;                    

auf. Wenn du dann mit dem hinzufügen der Items fertig bist rufst du

Delphi-Quelltext
1:
Items.EndUpdate;                    

auf.

Gruß
Tino


JanHH - Sa 28.08.04 17:53

Dankz.

Jan