AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi IdFTP, Ordnerstruktur auflisten
Thema durchsuchen
Ansicht
Themen-Optionen

IdFTP, Ordnerstruktur auflisten

Ein Thema von LucasL · begonnen am 20. Dez 2005 · letzter Beitrag vom 21. Dez 2005
Antwort Antwort
LucasL

Registriert seit: 20. Dez 2005
19 Beiträge
 
#1

IdFTP, Ordnerstruktur auflisten

  Alt 20. Dez 2005, 20:07
Hallo miteinander,

ich bin einwenig verzweifelt. In der Unit meines Hauptformulars habe ich ein IdFTP-Objekt (Indy 10) und ich möchte damit einen Verzeichnisbaum in einem TTreeView-Objekt in einem anderen Formular erstellen.

Klappt eigentlich(!) auch wunderbar, indem ich aus dem Hauptformular rekursiv das IdFTP-Objekt anzapfe und die Ordner dann in das andere Formular übertrage.

Hier mal die beiden wichtigsten Funktionen dazu:

Code:
function ListDirs(var IdFTP : TIdFTP) : TStringList;
* var
* * StrFTP : TStringList;
* * i : integer;
begin
* StrFTP := TStringList.Create;
* IdFTP.List(StrFTP, '', false);
* for i := (StrFTP.Count - 1) downto 0 do
* * if (StrFTP.Strings[i] = '') or
* * * *(StrFTP.Strings[i] = '.') or
* * * *(StrFTP.Strings[i] = '..') or
* * * *(Pos('.', StrFTP.Strings[i]) <> 0) then
* * * StrFTP.Delete(i);
* ListDirs := StrFTP;
end;

procedure FillTree(parent : TTreenode; var Tree : TTreeView; var IdFTP : TIdFTP);
* var
* * StrFTP : TStringList;
* * Node : TTreeNode;
* * i : integer;
begin
* try
* * StrFTP := ListDirs(IdFTP);
* except
* * exit;
* end;
* for i := 0 to StrFTP.Count - 1 do
* begin
* * Node := Tree.Items.AddChild(parent, StrFTP.Strings[i]);
* * IdFTP.ChangeDir(Node.Text);
* * FillTree(Node, Tree, IdFTP);
* * IdFTP.ChangeDirUp;
* end;
end;
Leider dauert das ganze bei vielen Ordnern verdammt lange! Also hatte ich mir überlegt, ich lade einfach bei Bedarf, also bei jedem "Anklicken eines Knotens" (onChange) in der Treeview, die entsprechenden Unterordner hinzu. Und jetzt tritt das eigentliche Problem auf:

Ich kriege ums Verrecken keinen Zugriff aus dem zweiten Formular auf das IdFTP-Objekt in der Hauptunit, sodass ich darauf Operationen wie ChangeDir anwenden könnte (Kommt immer Zugriffsverletzung, etc.)!

Ich bräuchte also entweder eine Lösung, die das Auflisten der Ordnerstruktur performanter, oder den problemlosen Zugriff auf das IdFTP-Objekt aus anderen Units ermöglicht.

Bin für jeden Lösungsvorschlag dankbar!

Gruß,
Lucas
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: IdFTP, Ordnerstruktur auflisten

  Alt 20. Dez 2005, 20:11
Du müsstest da IdFtp-Objekt entweder
-public machen und per Form1.IdFtp drauf zugreifen oder
-global deklarieren

dann sollte es gehen ...
  Mit Zitat antworten Zitat
LucasL

Registriert seit: 20. Dez 2005
19 Beiträge
 
#3

Re: IdFTP, Ordnerstruktur auflisten

  Alt 20. Dez 2005, 21:01
hm, aber auch wenn ichs global in der 2. Unit deklariere und dann versuch aus der 1. Unit (uses "2. Unit") auf das IdFTP-Objekt zuzugreifen bekomm ich leider ne Access Violation

Exception:
"Lesen von Adresse 000..."
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: IdFTP, Ordnerstruktur auflisten

  Alt 20. Dez 2005, 21:13
Hast du es schon instantiiert?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
LucasL

Registriert seit: 20. Dez 2005
19 Beiträge
 
#5

Re: IdFTP, Ordnerstruktur auflisten

  Alt 20. Dez 2005, 22:07
Ja, würden euch weitere Ausschnitte helfen?
  Mit Zitat antworten Zitat
LucasL

Registriert seit: 20. Dez 2005
19 Beiträge
 
#6

Re: IdFTP, Ordnerstruktur auflisten

  Alt 21. Dez 2005, 17:40
Ich hab das Problem gelöst. Hab einfach nochmal Ordnung in das ganze gebracht und nun funzts. Danke trotzdem für eure Zeit und frohes Fest
  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 15:41 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