![]() |
Ordner auslesen und Dateien in ListView anzeigen?
Hallo,
ich lese einen Ordner aus uns möchte die Dateien in einer TListView anzeigen und verknüpfen. Dabei soll das Orginal DateiIcon zu sehen sein. Ist das irgendwie möglich? Lese zur Zeit flgendermaßen den Ordner aus.
Delphi-Quellcode:
var
SearchRec: TSearchRec; begin FindFirst(ExtractFilePath(Application.Exename) + '*.*', faAnyFile, SearchRec); repeat ListBox1.items.add(searchrec.Name); until FindNext(searchrec) <> 0; findclose(searchrec); end; --- Edit --- Auflisten klappt schonmal weiß nur nicht wie ich die Symbole anzeigenlassen soll. |
Re: Ordner auslesen und Dateien in ListView anzeigen?
Moin Citybreaker,
in Deinem Codeschnipsel verwendest Du eine ListBox. Um die Icons mit anzeigen zu lassen wirst Du wohl einen ListView brauchen (wie Du ja auch oben schreibst). Wo hast Du jetzt das Problem: Bei der Zuweisung der Icons, oder beim Auslesen? |
Re: Ordner auslesen und Dateien in ListView anzeigen?
Hab den Codeschnipsel von der alten version gepostet. Da war da noch die ListBox.
Ich hab überhaupt kein Plan wie ich kann die Iconsrankomme und diese dann anzeigen lassen kann. |
Re: Ordner auslesen und Dateien in ListView anzeigen?
Moin Citybreaker,
ich hätte da ein simples Beispiel. Dafür brauchst Du einen Button, ein Editfeld, ein Imagelist (Name muss auf ilFilter gestellt werden) und einen ListView (Name = lvFilter, SmallImages = ilFilter, ViewStyle = vsReport) Ausserdem müssen die Units shlobj und shellapi eingebunden werden. Das Editfeld dient hier nur der Eingabe einer Extension die dann, samt zugehörigem Icon, in den Listview eingetragen wird. Die Extension muss dazu ohne Punkt eingegeben werden.
Delphi-Quellcode:
implementation
uses shlobj, // IShellFolder shellapi; // SHGetFileInfo {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var icWork : TIcon; sfWork : IShellFolder; fiWork : TSHFileInfo; begin icWork := TIcon.Create; try lvFilter.Items.Add; lvFilter.Items[lvFilter.Items.Count-1].Caption := Edit1.Text; // Ermitteln des Icons SHGetFileInfo( PChar('*.'+Edit1.Text), // Die gewünschte Extension übergeben 0, // Kein spezielles Dateiattribut angegeben (z.B. ReadOnly) fiWork, // Hier wird das Ergebnis abgelegt SizeOf(fiWork), // Grösse des Ergebnisses SHGFI_ICON // hIcon in fiWork füllen or SHGFI_SMALLICON // das Handle des kleinen Icons ermitteln or SHGFI_USEFILEATTRIBUTES // Der erste Parameter enthält i.d.R. den Pfad zu einer // vorhandenen Datei. // Mit diesem Flag wird das nicht geprüft, so dass die Angabe // einer Extension ausreicht das Icon zu erhalten // Enthält der Parameter einen gültigen Pfad, so kann dieses // Flag auch weggelassen werden ); // Handle des Icons an Iconobjekt übergeben icWork.Handle := fiWork.hIcon; // Damit es // 1. der Imageliste hinzugefügt werden kann // 2. der Eintrag im Listview dieses Icon bekommt lvFilter.Items[lvFilter.Items.Count-1].ImageIndex := ilFilter.AddIcon(icWork); finally FreeAndNil(icWork); end; end; procedure TForm1.FormDestroy(Sender: TObject); var icWork : TIcon; begin // Imageliste leeren und Icons aus der Systemimagelist // wieder zerstören icWork := TIcon.Create; try while ilFilter.Count > 0 do begin ilFilter.GetIcon(ilFilter.Count-1,icWork); ilFilter.Delete(ilFilter.Count-1); DestroyIcon(icWork.Handle); end; finally FreeAndNil(icWork); end; end; |
Re: Ordner auslesen und Dateien in ListView anzeigen?
Fein, jetzt zeigt er mir ja schonmal die Icons von der entsprechenden Datei an,
jetzt möchte ich habe große Icons haben und den Style vsIcon. Gibts da ne möglichkeit? |
Re: Ordner auslesen und Dateien in ListView anzeigen?
|
Re: Ordner auslesen und Dateien in ListView anzeigen?
hallo, das mit den icons geht aber für ordner nicht! er zeigt keine icon für ordner! bitte um hilfe!
danke im voraus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 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-2025 by Thomas Breitkreuz