Autor Beitrag
Arne Danikowski
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 194



BeitragVerfasst: Di 30.10.07 17:52 
Also ich weis ja, es ist ein leidiges Thema. Ich möchte über einen DirectoryEdit ein Verzeichnis auswählen und die gefundenen Dateien und Ordner
dieses Verzeichnis in einer Listbox anzeigen lassen.

folgendes habe ich bisher versucht:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure Tbackupfrm.InDirChange(Sender: TObject);
var FindRec: TSearchRec;
begin
if FindFirst (indir.text + '*.*'+#0, faAnyFile, FindRec) = 0
then
    repeat
      if (FindRec.Name <> '.') and (FindRec.Name <> '..')
      then extraList.Clear;
      extralist.items.Add(FindRec.Name);
    until FindNext (FindRec) <> 0;
   FindClose (FindRec);


Das Ergebnis ist erstaunlich und nicht richtig.

Kann mit mal jemand den Wink mit dem Zaunpfahl geben?
dummzeuch
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 593
Erhaltene Danke: 5


Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
BeitragVerfasst: Di 30.10.07 18:40 
user profile iconArne Danikowski hat folgendes geschrieben:
Also ich weis ja, es ist ein leidiges Thema. Ich möchte über einen DirectoryEdit ein Verzeichnis auswählen und die gefundenen Dateien und Ordner
dieses Verzeichnis in einer Listbox anzeigen lassen.

folgendes habe ich bisher versucht:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure Tbackupfrm.InDirChange(Sender: TObject);
var FindRec: TSearchRec;
begin
if FindFirst (indir.text + '*.*'+#0, faAnyFile, FindRec) = 0
then
    repeat
      if (FindRec.Name <> '.') and (FindRec.Name <> '..')
      then extraList.Clear;
      extralist.items.Add(FindRec.Name);
    until FindNext (FindRec) <> 0;
   FindClose (FindRec);


Das Ergebnis ist erstaunlich und nicht richtig.

Kann mit mal jemand den Wink mit dem Zaunpfahl geben?


Was soll extralist.clear bewirken? Und wann soll es aufgerufen werden? Willst Du auch die Eintraege '.' und '..' zur Listbox hinzufuegen?

Also fuer mich sieht es so aus, als ob:
1. extralist.clear vor die erste If-Abfrage gehoert
2. extralist.items.add nur im Then-Fall aufgerufen werden soll.

Und wozu soll das +#0 gut sein?

twm
Arne Danikowski Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 194



BeitragVerfasst: Mi 31.10.07 12:31 
So ich habe das ganze mal abgeändert:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure Tbackupfrm.InDirChange(Sender: TObject);  
var FindRec: TSearchRec;  
begin  
extraList.Clear;
if FindFirst ('*.*', faAnyFile, FindRec) = 0  
then  
    repeat  
      if (FindRec.Name <> '')   
      then   
      extralist.items.Add(FindRec.Name);  
    until FindNext (FindRec) <> 0;  
   FindClose (FindRec);


Das funktioniert auch.