AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Im TlistView Fileicon darstellen

Ein Thema von smart · begonnen am 9. Jan 2005 · letzter Beitrag vom 9. Jan 2005
Antwort Antwort
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#1

Im TlistView Fileicon darstellen

  Alt 9. Jan 2005, 20:06
Ich möchte in einem TListview Dateien mit Icon darstellen. Dazu habe ich eine Form mit TListview ,TFileListBox und einem Button. Wenn ich auf dem Button klicke werden die angezeigten dateien im TListview mit Icons dargestellt. Das ganze klappt auch sehr gut, ist aber sehr langsam. Hat Einer von Euch einen Vorschlag wie man das ganze schneller machen kann?

Code:
function GetAssociatedIcon(const AExtension: string; ASmall: Boolean): HIcon;
var
  Info: TSHFileInfo;
  Flags: Cardinal;
begin
  if ASmall then
     Flags := SHGFI_ICON or SHGFI_LARGEICON or SHGFI_USEFILEATTRIBUTES;

  SHGetFileInfo(PChar(AExtension), FILE_ATTRIBUTE_NORMAL, Info, SizeOf(TSHFileInfo), Flags);
  Result := Info.hIcon;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  icon: TIcon;
  ListItem: TListItem;
  Line:Integer;
begin
ListView1.Items.Clear;
For Line := 0 To FileListBox1.Items.Count -1 do
begin
     icon := TIcon.Create;
     try
     If (ExtractFileExt(FileListBox1.Items[Line]) = '.exe') or    (ExtractFileExt(FileListBox1.Items[Line]) = '.EXE') Then
     icon.Handle := ExtractIcon(Handle, PChar(FileListBox1.Items[Line]), 0)
     else
     icon.Handle := GetAssociatedIcon(ExtractFileExt(FileListBox1.Items[Line]), True);
     with ListView1 do
     begin
        ListItem := Items.Add;
        Listitem.Caption := FileListBox1.Items[Line];
        ListView1.LargeImages := ImageList1;
        ListView1.ViewStyle := vsIcon;
        ListItem.ImageIndex := ImageList1.AddIcon(Icon);
     end;
     finally
     icon.Free;
     end;
end;
end;
Wichtig ist noch, das der Code andere Fileoperationen frei geben kann.
Heike Kretschmann
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#2

Re: Im TlistView Fileicon darstellen

  Alt 9. Jan 2005, 20:10
Du könntest das gesamte Hinzufügen der Items in die Listview noch in BeginUpdate und EndUpdate Blöcke setzen.
Aber generell ist die Listview nicht so der "Renner"...
Alexander
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz