Das mit dem TParallel.For() bekomme ich auch nicht wirklich in Gange.
Zum verzweifeln wenn man nicht weiß wie.
Delphi-Quellcode:
procedure TfrmMain.StartIcons3( AListView: TListView; AImageList: TImageList );
var
LIcon: TIcon;
dummy: Word;
begin
dummy := 0;
LIcon := TIcon.Create;
LIcon.Transparent := True;
TParallel.For(0, AListView.Items.Count - 1,
procedure(Index: Integer; State: TParallel.TLoopState)
var
Filename : string;
begin
try
if State.ShouldExit then Exit;
TThread.Synchronize(nil,
procedure
begin
Filename := AListView.Items.Item[ Index ].Caption;
LIcon.Handle := ExtractAssociatedIcon( hInstance, PWideChar( Filename ), dummy );
LIcon.Transparent := True;
AListView.Items.Item[Index].ImageIndex := AImageList.AddIcon( LIcon );
DestroyIcon( LIcon.Handle );
end);
finally
end;
end);
LIcon.Free;
end;