Einzelnen Beitrag anzeigen

Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#42

AW: Kann ich meine ListView beschleunigen (Icon laden dauert ewig)

  Alt 13. Nov 2018, 23:29
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;
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat