Welche uses braucht GetSubDirectories?

Rund um die LCL und andere Komponenten
Lion
Beiträge: 207
Registriert: Mo 24. Mär 2014, 09:58

Welche uses braucht GetSubDirectories?

Beitrag von Lion »

Habe aus dem Lazarus Buch folgenden Code um eine Verzeichnisstruktur in einem TreeView aufzubauen. Beider Zeile

Code: Alles auswählen

Result := GetSubDirectories(ADir, L);
schlägt aber Lazarus fehl, mit dem Fehler:

Code: Alles auswählen

Error: Identifier NOT found "GetSubDirectories"
Was mache ich da? Google hilft mir auch nicht weiter.

Code: Alles auswählen

 
Function TForm1.ShowDirectory(Const ADir: String; TV: TTreeView;
                                 ParentNode: TTreeNode): Integer;
  Var I,II: Integer;
         N: TTreeNode;
         L: TStringList;
         D: String;
begin
  L := TStringList.Create;
  try
    Result := GetSubDirectories(ADir, L);
    if result > 0 then
    begin
      TV.Items.BeginUpdate;
      try
        For I := 0 to L.Count-1 do
        begin
          D := L[i];
          N := TV.Items.AddChild(ParentNode,D);
          D := IncludeTrailingPathDelimiter(ADir) + D;
          if ShowDirectory(D,TV,N) > 0 then
            II := 1
          else
            II := 0;
          N.ImageIndex := II;
          N.SelectedIndex := II;
        end;
      finally
      TV.Items.EndUpdate;
    end;
  end;
  finally
    L.free;
  end;
end;  
 
Danke!

Michl
Beiträge: 2513
Registriert: Di 19. Jun 2012, 12:54

Re: Welche uses braucht GetSubDirectories?

Beitrag von Michl »

Ich konnte keine Function "GetSubDirectories" finden. Es könnte eine Funktion sein, die in dem Buch irgendwo erstellt wurde?!

Ansonsten die Procedure von http://delphi.about.com/od/delphitips20 ... tories.htm in eine Function umgestellt und Result:=list.Count; könnte dem evtl. entsprechen.

PS: Ich nutze gern Cody (als Package installierbar) zur Suche von unbekannten Bezeichnern. Wenn du das nicht installieren willst, kannst du auch auf den unbekannten Bezeichner im Messagewindow rechtsklicken und "Suche Bezeichner" wählen (funktioniert auch, dauert nur länger als Cody).

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Benutzeravatar
theo
Beiträge: 11344
Registriert: Mo 11. Sep 2006, 19:01

Re: Welche uses braucht GetSubDirectories?

Beitrag von theo »

Code: Alles auswählen

uses brain;
:wink:

Nimm halt irgend eine z.B. die http://delphi.about.com/od/delphitips20 ... tories.htm
und mach eine Funktion draus, wo du den List.Count zurückgibst.
Immer flexibel bleiben. :D

Lion
Beiträge: 207
Registriert: Mo 24. Mär 2014, 09:58

Re: Welche uses braucht GetSubDirectories?

Beitrag von Lion »

Wie rufe ich danach die Funktion auf?

Code: Alles auswählen

ShowDirectory('C:\', TreeView1, //??? hier hackts, was übergibt man hier?);

Benutzeravatar
theo
Beiträge: 11344
Registriert: Mo 11. Sep 2006, 19:01

Re: Welche uses braucht GetSubDirectories?

Beitrag von theo »

Lion hat geschrieben:Wie rufe ich danach die Funktion auf?

Code: Alles auswählen

ShowDirectory('C:\', TreeView1, //??? hier hackts, was übergibt man hier?);
Ich habe das Buch nicht. Übergib halt einen TreenNode, den es gibt. z.B. TreeView1.Items[0];

Übrigens: Es heiss "es hakt" nicht "es hackt". :wink:

Lion
Beiträge: 207
Registriert: Mo 24. Mär 2014, 09:58

Re: Welche uses braucht GetSubDirectories?

Beitrag von Lion »

theo hat geschrieben:
Lion hat geschrieben:Wie rufe ich danach die Funktion auf?

Code: Alles auswählen

ShowDirectory('C:\', TreeView1, //??? hier hackts, was übergibt man hier?);
Ich habe das Buch nicht. Übergib halt einen TreenNode, den es gibt. z.B. TreeView1.Items[0];


Ok, ich habe TreeView1.Items übergeben und es ging nicht...
theo hat geschrieben:Übrigens: Es heiss "es hakt" nicht "es hackt". :wink:
Danke für den Hinweis!

Benutzeravatar
theo
Beiträge: 11344
Registriert: Mo 11. Sep 2006, 19:01

Re: Welche uses braucht GetSubDirectories?

Beitrag von theo »

Lion hat geschrieben: Ok, ich habe TreeView1.Items übergeben und es ging nicht...
Habe ich das gesagt?

Lion
Beiträge: 207
Registriert: Mo 24. Mär 2014, 09:58

Re: Welche uses braucht GetSubDirectories?

Beitrag von Lion »

theo hat geschrieben:
Lion hat geschrieben: Ok, ich habe TreeView1.Items übergeben und es ging nicht...
Habe ich das gesagt?
Ne, ich meine bevor ich die Frage gestellt habe, habe es so versucht, aber es ging nicht. ))

Benutzeravatar
theo
Beiträge: 11344
Registriert: Mo 11. Sep 2006, 19:01

Re: Welche uses braucht GetSubDirectories?

Beitrag von theo »

Lion hat geschrieben: Ne, ich meine bevor ich die Frage gestellt habe, habe es so versucht, aber es ging nicht. ))
Na und? Hast du denn meinen Vorschlag auch geprüft?

Code: Alles auswählen

 
TreeView1.Items[0]

ruewa
Beiträge: 153
Registriert: Sa 12. Apr 2014, 14:43

Re: Welche uses braucht GetSubDirectories?

Beitrag von ruewa »

theo hat geschrieben:Übrigens: Es heiss "es hakt" nicht "es hackt". :wink:
Ohne das brainhaltige Geraufe unterbrechen zu wollen... Übrigens, es "heiss" es "heisst", und ein Komma gehört auch noch rein zwischen "es hakt" und "nicht 'es hackt'". Brauchst Du sowas wirklich?

@Lion: Gegenvorschlag: FindAllDirectories

Das Ding hat nur einen Haken, der unbedingt beachtet werden sollte, analog zu FindAllFiles: Du darfst die Stringliste nicht selbst erstellen, mußt sie aber selbst freigeben. Siehe http://www.lazarusforum.de/viewtopic.php?p=73094#p73094

Gruß Rüdiger
Zuletzt geändert von ruewa am Mo 2. Feb 2015, 22:50, insgesamt 3-mal geändert.

Benutzeravatar
theo
Beiträge: 11344
Registriert: Mo 11. Sep 2006, 19:01

Re: Welche uses braucht GetSubDirectories?

Beitrag von theo »

ruewa hat geschrieben:Ohne das brainhaltige Geraufe unterbrechen zu wollen...
Welches Geraufe? :shock:
ruewa hat geschrieben: Gegenvorschlag: FindAllDirectories
Lion hat doch eher ein Problem mit dem Speisen des Trees und nicht unbedingt mit dem Finden von Dateien.

Lion
Beiträge: 207
Registriert: Mo 24. Mär 2014, 09:58

Re: Welche uses braucht GetSubDirectories?

Beitrag von Lion »

theo hat geschrieben: Na und? Hast du denn meinen Vorschlag auch geprüft?

Code: Alles auswählen

 
TreeView1.Items[0]
Ja, aber es knallt, siehe Screenshot. Weiß jetzt nicht was der Fehler bedeutet.
Dateianhänge
Screenshot2.PNG
Screenshot2.PNG (3.51 KiB) 3290 mal betrachtet
Screenshot.PNG

Benutzeravatar
theo
Beiträge: 11344
Registriert: Mo 11. Sep 2006, 19:01

Re: Welche uses braucht GetSubDirectories?

Beitrag von theo »

Lion hat geschrieben: Ja, aber es knallt, siehe Screenshot. Weiß jetzt nicht was der Fehler bedeutet.
Hast du denn zuerst einen Treenode Manuell erstellt? Ich habe ja geschrieben "einen TreenNode, den es gibt"

Lion
Beiträge: 207
Registriert: Mo 24. Mär 2014, 09:58

Re: Welche uses braucht GetSubDirectories?

Beitrag von Lion »

theo hat geschrieben:
Lion hat geschrieben: Ja, aber es knallt, siehe Screenshot. Weiß jetzt nicht was der Fehler bedeutet.
Hast du denn zuerst einen Treenode Manuell erstellt? Ich habe ja geschrieben "einen TreenNode, den es gibt"
Wo soll der erstellt werden und wie? Habe irgendwie keine Ahnung von den Nodes.

Ich habe ein Item erstellt, aber die TreeView bleibt irgendwie leer....

Benutzeravatar
theo
Beiträge: 11344
Registriert: Mo 11. Sep 2006, 19:01

Re: Welche uses braucht GetSubDirectories?

Beitrag von theo »

:roll:
Auf den Treeview doppelklicken, dann bekommst du einen Editor.

Antworten