AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Ordner auslesen und Dateien in ListView anzeigen?
Thema durchsuchen
Ansicht
Themen-Optionen

Ordner auslesen und Dateien in ListView anzeigen?

Ein Thema von citybreaker · begonnen am 20. Apr 2004 · letzter Beitrag vom 5. Jan 2006
 
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.124 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Ordner auslesen und Dateien in ListView anzeigen?

  Alt 21. Apr 2004, 16:32
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;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
 


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 13:12 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