Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TListView füllen dauert lange - Geht es auch schneller? (https://www.delphipraxis.net/90827-tlistview-fuellen-dauert-lange-geht-es-auch-schneller.html)

uwewo 24. Apr 2007 15:40

Re: TListView füllen dauert lange - Geht es auch schneller?
 
Versuchs mal hiermit, beschleunigt ungemein :)

Delphi-Quellcode:
ListView1.Items.BeginUpdate;
//hier die Werte hinzufügen
ListView1.Items.EndUpdate;

Ares 24. Apr 2007 15:52

Re: TListView füllen dauert lange - Geht es auch schneller?
 
Zitat:

Zitat von uwewo
Versuchs mal hiermit, beschleunigt ungemein :)

Delphi-Quellcode:
ListView1.Items.BeginUpdate;
//hier die Werte hinzufügen
ListView1.Items.EndUpdate;

Das bringt leider keine Besserung...



Zitat:

Zitat von CCRDude
Infos private in der Form, dann virtuell, wie ich schon sagte:

Delphi-Quellcode:
MyListView.OwnerData := true;
MyListView.Items.Count = Length(Infos);

procedure TMyDlg.MyListViewData(Item: TListItem);
begin
   if Item.Index>=Length(Infos)
    then Exit;
   Item.Caption := Infos[Item.Index].str1;
   Item.SubItems.Add(Infos[Item.Index].str2);
   if (Infos[Item.Index].num=mnOne) then begin
      Item.SubItems.Add('One');
      Item.Checked := true;
   end else begin
      Item.SubItems.Add('Two');
      Item.Checked := false;
    end;
end;
Dadurch wird Infos nur noch dann verarbeitet, wenn die GUI die Anzeige verlangt (bzw. Du Funktionen wie sortieren etc. aufrufen würdest).

(PS: VirtualStringTree ist da doch schon eher Overkill, virtuell können auch normale Listen ;) )

Das funktioniert prima, der Dialog öffnet sich nun ohne Verzögerung. Allerdings werden die Checkboxen nicht mehr gezeichnet. Gibt es dafür auch noch einen Trick?

CCRDude 24. Apr 2007 16:37

Re: TListView füllen dauert lange - Geht es auch schneller?
 
Oh, sorry, daß es da um Checkboxen ging hab ich überlesen... da gab es irgend einen "Trick" zu, in virtuellen Listen gingen die sonst nicht sofort. Komm leider gerade nicht drauf, wie der ging (wenige Zeilen Code, aber nicht trivial genug um sie auswendig zu wissen, wenn man wie ich doch zu oft auf TVirtualStringTree ausweicht :D ).


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz