Zitat von
marabu:
Hallo,
nicht zuletzt weil du die ListView auch als Daten-Container benutzt, solltest du alle Zugriffe auf die Items (Clear, Add) mit BeginUpdate und EndUpdate einfassen.
Grüße vom marabu
Das war hier im Forum eine beschriebene Methode, welche nur bedingt Geschwindigkeit bringt.
Soweit ich gelesen habe, gibt es die Möglichkeit die ListView virtual zu machen, nur bekomme ich das aktuell an meinem Code nicht hin. Es geht hier um z.T. viele Einträge.
Dein Stichwort ist Datencontainer und da solls auch so gehen, das man diesen verlagert, na ich habe da keinen Ansatz....
Hier nochmal etwas aus dem Forum:
Delphi-Quellcode:
Procedure TForm1.FillData (aCount : Integer);
Begin
ListView1.OwnerData := True;
ListView1.Items.Count := aCount;
ListView1.OnData := ListView1Data;
End;
procedure TfmEditCustomer.ListView1Data(Sender: TObject; Item: TListItem);
begin
Item.Caption := MyUserData[Item.Index].MainTitle;
Item.ImageIndex := MyUserData[Item.Index].DataType;
...
End;