Entwickler-Ecke

Dateizugriff - Unterordner anzeigen


RFZ - So 02.03.03 13:18
Titel: Unterordner anzeigen
Hoi,
ich würde gerne möglichst simpel die Unterordner eines festen Ordners auslesen, wie mach ich das?

cu RFZ


MSCH - So 02.03.03 14:43

vielleicht so?
Dir ist das Verzeichnis welches durchsucht werden soll.
Dir ohne Backslash, ansonsten prüfen


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure AlleVerzeichnisse(Dir:String);
var I:Integer;
    MyTSearchRec: TSearchRec;
begin
  findfirst(Dir+'\*.*',faDirectory,MyTSearchRec);
  while I=0 do begin
    //tuIrgentwasMitdemVerzeichnis
    // Vorsicht . und .. kommen hier auch als Ergebnis!!
    I:= FindNext(MyTSearchRec);
  end;
  FindClose(MyTSeachRec);
end;


Weitere Unterverzeichnisse ? Null Probleme, Rufe die Funktion Rekursiv mit gefundenen Werten aus sich selber wieder auf innerhalb der WhileSchleife.
Grüße
MSCH


MSCH - So 02.03.03 14:44
Titel: ups
:!: KLEINER FEHLER IM SCRIPT:

begin
I:= findfirst(Dir+'\*.*',faDirectory,MyTSearchRec);
..

ups
MSCH


RFZ - So 02.03.03 14:53

Hoi, danke :)
Hab den Fehler schon bemerkt und korrigiert.
Dangeschön :)

cu RFZ


RFZ - So 02.03.03 15:07

Hmmm, ich bekomme aber alle Dateien und Ordner, versteh ich jetzt nicht *g*
Wo kann das Problem liegen?

cu RFZ


MSCH - So 02.03.03 15:09

Hi,
versuchs mal damit:

Findfirst('*.*',faDirectory and not faAnyFile,MyTSearchRec);

Grüße
MSCH


RFZ - So 02.03.03 15:13

nö, das geht auch nicht :(


MSCH - So 02.03.03 15:24
Titel: ***GRÜBEL***
Nanu, :?:
habs ausprobiert - why not? Da scheint ein Bug rumzulungern.
Sei's drum: hier der Code der Funzt, habs grad probiert:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.Button1Click(Sender: TObject);
var SR: TSearchRec;
     I:Integer;
begin
  Memo1.Lines.clear;
  I:= FindFirst('C:\*.*',faAnyFile, SR);
  while I=0 do begin
    if SR.Attr and faDirectory= faDirectory then
      Memo1.Lines.add(SR.Name);
    I:= FindNext(SR);
  end;
  findClose(SR);
end;


CU
MSCH


RFZ - So 02.03.03 15:43

Dange, jetzt klappts.
Hab aber eine weitere Bildungslücke :)
Ich hab damit Dynamisch ein Items eines Popupmenus erstellt (TMenuItem) und ihnen die Prozedur "pmClick(Sender: TObject)" bei onClick zugewiesen.
Wie kann ich jetzt in dieser Prozedur wieder auf das MenuItem schliessen? Damit hab ich mich noch nie beschäftigt...

cu RFZ


mars - So 02.03.03 16:36

Ich denke, du suchst nach Typecasting:

Quelltext
1:
2:
3:
(Sender as TMenuItem)
oder
TMenuItem(Sender)


RFZ - So 02.03.03 16:42

ach, so einfach geh das :D

cu RFZ