![]() |
Listview und Treeview mit eigenen Icons erstellen
Hallo allerseits!
Bin gerade dabei, eigenen Explorer zu erstellen. Dabei würde ich gerne für die Ordner und Dateien eigene Icons benutzen. Die Listview kennt nicht alle Icons und ShellListView nur die von (jeweiligen) Windows verwendeten Icons. Da ShellListView schon "eigene" Icons hat, würde ich gern mit der normalen ListView arbeiten. ![]() Ich dachte hier an ungefähr sowas: Entweder manuell:
Delphi-Quellcode:
Oder automatisch - man legt ein Array an für die DateiEndungen von Avi bis Zip und ihn anschließend miteiner ImageList verknüpft.
if ItemType:=Folder then MyIcon:=Folder.ico
if ItemType:=.mp3 then MyIcon:=mp3.ico if ItemType:=.jpg then MyIcon:=jpg.ico Auf jeden fall weiss ich nicht, wie ich die ListView mit meinen Icons verbinde. Hat jemand ne Idee? |
Re: Listview und Treeview mit eigenen Icons erstellen
Wenn ich mich recht erinnere: Du musst der Listview eine Imagelist zuweisen und jedes Item hat eine ImageIndex Eigenschaft, die bestimmt welches Bild angezeigt wird ;)
|
Re: Listview und Treeview mit eigenen Icons erstellen
Das stimmt. Nur wie mach ich es so, dass bei einer Mp3-Datei ein Mp3-Icon erscheint? (Zuweisung)
[EDIT 1] OK. Dann noch mal Schrittweise. Kann mir jemand sagen, wie man die TreeView und ListView füllen kann - VerzeichnissBaum? |
Re: Listview und Treeview mit eigenen Icons erstellen
Brauchst halt noch eine Liste in der zu der jeweiligen Dateiendung der ImageIndex gespeichert ist. z. B.
Delphi-Quellcode:
Besser wäre es natürlich wenn du dir eine Komponente von TCollection ableitest, dann kannst du die ImageIndexe und Dateiendungen zur DesignTime im Objekt-Inspektor einstellen.
type
TFileExt = record FileExt: String; ImageIndex: Integer; end; TFileExts = array of TFileExt; ... var FileExtArray: TFileExts; procedure TForm1.OnCreate(Sender: TObject); begin SetLength(FileExtArray, 1); FileExtArray.FileExt := 'htm'; FileExtArray.ImageIndex := 5; end; procedure TForm1.ErstelleEintrag(FileName: String); begin with ListView1.Items.Add do begin ... ImageIndex := GetFileImageIndex(ExtractFileExt(FileName)); end; end; function TForm1.GetFileImageIndex(AFileExt: String):Integer; var i: Integer; begin Result := -1; for i := 0 to Length(FileExtArray) -1 do begin if LowerCase(AFileExt) = LowerCase(FileExtArray[i].FileExt then begin Result := FileExtArray[i].ImageIndex; Break; end; end; end; |
Re: Listview und Treeview mit eigenen Icons erstellen
Danke für die Antwort. So wie es aussieht, werde ich mich jetzt noch ne Weile mit deinem Code auseinandersetzen - bin noch kein Profi :oops:
Aber da gibts noch ne Kleinigkeit - ich habe Delphi 2005 und habe keine TCollection-Komponente im ObjektInspektor. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz