AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Verzeichnis in einer ListView darstellen

Ein Thema von elKe · begonnen am 17. Aug 2004 · letzter Beitrag vom 18. Aug 2004
Antwort Antwort
elKe

Registriert seit: 17. Aug 2004
13 Beiträge
 
Delphi 5 Enterprise
 
#1

Verzeichnis in einer ListView darstellen

  Alt 17. Aug 2004, 15:13
Hi,

ich habe schon erfolglos die Suchfunktion betätigt.

Wie kann ich ein Verzeichnis in eine ListView laden?
//edit: Ich habe kein Delphi 6 oder höher, also kommt die ShellListView nicht in Frage!

danke
Florian (m.) ^^
tjo... so isses!
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#2

Re: Verzeichnis in einer ListView darstellen

  Alt 17. Aug 2004, 15:21
Der einfache Weg (allerdings nicht ganz authentisch): Hier im Forum suchenFindFirst FindNext. Alternativ fallen mir die [dp]"ShellShock"[/dp]-Komponenten ein, die Christian Seehase mal erwähnt hat. Oder du machst es selbst mit den Shell-Funktionen, die dir vom System zur Verfügung gestellt werden und die auch der Explorer benutzt (und die ShellShock-Komponenten). Aber das ist viel Arbeit. Wir hatten kürzlich ein paar Themen dazu. Wenn ich jetzt noch wüsste, welchen Suchbegriff ich anbieten könnte. Hm ... Hier im Forum suchenSHGetDesktopFolder Explorer. Ja, das müsste klappen.
  Mit Zitat antworten Zitat
elKe

Registriert seit: 17. Aug 2004
13 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Verzeichnis in einer ListView darstellen

  Alt 17. Aug 2004, 15:38
erstmal danke!
Mal guggen, was sich finden lässt!
Florian (m.) ^^
tjo... so isses!
  Mit Zitat antworten Zitat
elKe

Registriert seit: 17. Aug 2004
13 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: Verzeichnis in einer ListView darstellen

  Alt 18. Aug 2004, 10:44
also ich hab hier jetzt sowas da gefunden:

Delphi-Quellcode:
procedure TForm1.ListView2DblClick(Sender: TObject);
var
  ds : TSearchRec;
  res : integer;
  li : TListItem;
  fi : TSHFileInfo;
  drive: string;
begin
  drive := ListView2.Selected.caption;
  ListView3.Items.Clear;

  res := FindFirst(drive + '*.*', faAnyFile,ds);
  while(res = 0) do
  begin
    if(ds.Attr and faDirectory = 0) and
      (ds.Name <> '.') and
      (ds.Name <> '..') then
    begin
      // Name der Datei eintragen
      li := Listview3.Items.Add;
      li.Caption := ds.Name;

      // jetzt Zugriff auf die System-Imageliste
      // und nur den Typennamen und das Symbol
      // ermitteln!
      ZeroMemory(@fi,sizeof(fi));
      SHGetFileInfo(pchar(drive + ds.Name),0,fi,sizeof(fi),
        SHGFI_ICON or SHGFI_SYSICONINDEX or SHGFI_TYPENAME);

      // Icon-Index zuweisen, ...
      li.ImageIndex := fi.iIcon;
      // "iIcon" ist eine Integer-Variable und erhält somit
      // wirklich nur den Index auf das Symbol, aber nicht
      // das Symbol als solches. Daher ist es nun egal, wie
      // oft ein Dateityp im Ordner vorkommt.


      // ... & Typennamen als Untereintrag hinzufügen
      li.SubItems.Add(fi.szTypeName);
    end;

    res := FindNext(ds);
  end;
  FindClose(ds);
end;
listView2 ist dabei eine auflistung der laufwerke.

jetzt meine frage: wie kann ich in der listview nicht nur enthaltene dateien sondern auch enthaltene ordner anzeigen lassen?
Florian (m.) ^^
tjo... so isses!
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Verzeichnis in einer ListView darstellen

  Alt 18. Aug 2004, 10:52
Hi,
Zitat von elKe:
    if(ds.Attr and faDirectory = 0) and
hier gehst du davon aus, dass du keine Verzeichnisse haben willst. Folglich musst du diesen Teil der Abfrage rausnehmen.
Aber du musst aufpassen mit SHGetFileInfo. Ich glaube das kommt mit Verzeichnissen nicht ganz klar.

Chris
  Mit Zitat antworten Zitat
elKe

Registriert seit: 17. Aug 2004
13 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: Verzeichnis in einer ListView darstellen

  Alt 18. Aug 2004, 10:53
mal ausprobieren
//edit jop geht! danke!
Florian (m.) ^^
tjo... so isses!
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#7

Re: Verzeichnis in einer ListView darstellen

  Alt 18. Aug 2004, 11:01
Zitat von Chakotay1308:
Aber du musst aufpassen mit SHGetFileInfo. Ich glaube das kommt mit Verzeichnissen nicht ganz klar.
Glaubst du.
  Mit Zitat antworten Zitat
elKe

Registriert seit: 17. Aug 2004
13 Beiträge
 
Delphi 5 Enterprise
 
#8

Re: Verzeichnis in einer ListView darstellen

  Alt 18. Aug 2004, 11:20
bei mir gehts ^^

ähm.. wie kann ich das jetzt nach Ordnern und Dateien sortieren lassen? (Wie im Explorer auch)

Hab keinen Plan, wie ich das anstellen soll. Obwohl, wie kann man nach Spalten in ner LsitView sortieren? .. Mal in der Code-Library guggen.

//edit: verwende den Code hier: http://www.delphipraxis.net/internal...ct.php?t=23835

Funktioniert mit der ersten Spalte auch prima, aber wenn ich die zweite spalte sortieren will:
"Der Index der Liste überschreitet das Maximum (0)"

Wie krieg ich den Fehler weg?

//nochn edit: Fehler behoben, die erste Zeile hatte nur kein SubItem, das war der Fehler!
Florian (m.) ^^
tjo... so isses!
  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 13:20 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