AW: ListView mit OwnerData schneller machen?
21. Mär 2014, 22:23
Ich hab zwar schon früher mit ListView gearbeitet, aber letzte Woche zum erstem mal mit paar tausend Daten. Meine Erfahrung waren die: ich hab einen Ordner mit etwa 3000 Daten geladen (zuerst alle wichtigen Daten in eine Liste mit Objekten). Der Aufbau der LV hat fast 10 Sekunden gedauert. Nachdem ist es etwas optimiert habe waren es immer noch 5 Sekunden. Natürlich war das nicht akzeptabel, also habe ich ganz anders gemacht.
Zuerst wurde pro Datei ein Item erstellt und nur das Caption gefüllt, inkl. Grund-Icon (leeres Dokument-Icon). Das dauerte 50 ms. Erst im zweiten Schritt wurden die anderen Infos eingespielt, aber eben nicht alles auf einmal, es wurde nur immer der Teil von LV aktualisiert, der sichtbar war. Der Vorgang dauerte etwas über 100 ms. Wurde LV gescrollt, wurde der Teil aktualisiert.
Da die Daten im Objekt am Item sind, spielt es keine Rolle ob LV komplett gefüllt ist.
Wenn dir die Methode nicht gefällt, im Demo-Ordner von Delphi (zumindest in Delphi 7) ist ein tolles Beispiel zu LV ("Virtual Listview"), aber etwas kompliziert. Dafür aber sehr schnell, noch schneller als meine Lösung.
|