Einzelnen Beitrag anzeigen

d7user1
(Gast)

n/a Beiträge
 
#1

ListView füllen dauert lange

  Alt 22. Mär 2014, 12:22
hallo. ich befülle eine listview momentan mit 13000 items zum testen. das dauert momentan mit ein paar extras wie Icon hinzufügen, DateTimeToStr, Copy und MeinItem.Checked := True
runde 27 sekunden.

nehme ich das hinzufügen des icons heraus dauert es noch 9 sekunden. mit icon in der liste (dateityp z.b.) ist es natürlich schöner. aber wie löse ich das problem mit den 17 sekunden die zuviel sind? ich füge das icon so hinzu:

Delphi-Quellcode:
var
Icon: TIcon;
 FileInfo: SHFILEINFO;
begin
Icon := TIcon.Create;
// ...
SHGetFileInfo(PChar(sSourceDir + sCurrItem), 0, FileInfo, SizeOf(FileInfo), SHGFI_ICON or SHGFI_SMALLICON);
Icon.Handle := FileInfo.hIcon;
MeinItem.ImageIndex := ImageList1.AddIcon(Icon);
// ...
end;
gibt es eine schnellere methode als die ImageList? denn wenn 13.000 mal dasselbe icon per SHGetFileInfo() geholt wird, wird es auch 13.000 in die ImagList hinzugefügt.
  Mit Zitat antworten Zitat