Delphi-Quellcode:
procedure TfrmMain.StartIcons();
begin
TThread.CreateAnonymousThread(procedure ()
var
LIcon: TIcon;
I: Integer;
dummy: Word;
begin
dummy := 0;
LIcon := TIcon.Create;
LIcon.Transparent := True;
try
lvFiles.Update;
FileIcons.BeginUpdate;
for i := 0 to lvFiles.Items.Count -1 do
begin
LIcon.Handle := ExtractAssociatedIcon( hInstance, PWideChar( lvFiles.Items.Item[ i ].Caption ), dummy );
LIcon.Transparent := True;
lvFiles.Items.Item[ i ].ImageIndex := FileIcons.AddIcon( LIcon );
DestroyIcon( LIcon.Handle );
end;
TThread.Synchronize (TThread.CurrentThread, procedure ()
begin
end);
finally
FileIcons.EndUpdate;
LIcon.Free;
end;
end).Start;
end;
Ich habe die Idee mit Thread mal auf diese Weise ausprobiert, also Geschwindigkeit boost ohne ende, aber irgendwas mach ich da noch falsch, jetzt werden viele Icons nicht korrekt geladen.