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.