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
Antwort Antwort
citybreaker
(Gast)

n/a Beiträge
 
#1

Ordner auslesen und Dateien in ListView anzeigen?

  Alt 20. Apr 2004, 19:21
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.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: Ordner auslesen und Dateien in ListView anzeigen?

  Alt 20. Apr 2004, 21:17
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?
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
citybreaker
(Gast)

n/a Beiträge
 
#3

Re: Ordner auslesen und Dateien in ListView anzeigen?

  Alt 21. Apr 2004, 10:15
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.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 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
citybreaker
(Gast)

n/a Beiträge
 
#5

Re: Ordner auslesen und Dateien in ListView anzeigen?

  Alt 22. Apr 2004, 07:09
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?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: Ordner auslesen und Dateien in ListView anzeigen?

  Alt 22. Apr 2004, 19:59
Moin Citybreaker,

schau Dir am Besten mal die möglichen Parameter von MSDN-Library durchsuchenSHGetFileInfo an.
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
milanlu

Registriert seit: 16. Nov 2005
51 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Ordner auslesen und Dateien in ListView anzeigen?

  Alt 5. Jan 2006, 11:11
hallo, das mit den icons geht aber für ordner nicht! er zeigt keine icon für ordner! bitte um hilfe!
danke im voraus
Milan
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:19 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