Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Auslesen aus einem Strukturbaum (https://www.delphipraxis.net/5216-auslesen-aus-einem-strukturbaum.html)

eleonora 28. Mai 2003 12:38


Auslesen aus einem Strukturbaum
 
Hallo!

Wie bekomme ich es hin, dass die angeklickten Dateien und Ordner aus einem Strukturbaum/Gliederungsbaum, in einem EditFeld als vollständiger Pfad angezeigt werden?

Wisst Ihr was ich meine?

eleonora

Darty 28. Mai 2003 12:40

Ich nehme mal an Du willst wenn man eine Datei anklickt dann in Deiner Edit Feld erscheint ?

Wo klickst Du es an ? In Deinen Programm ? Oder in fremdem Programmen wie WinExplorer ?

eleonora 28. Mai 2003 13:12

In meinem Programm!

Darty 28. Mai 2003 14:39

Was verwendest Du um Dein Strukturbaum/Gliederungsbaum darzustellen ?

Weil so würde ich sagen:

Edit1.text := SelectItem.Text

oder so ähnlich habe jetzt kein Delphi zur Hand ..

Christian Seehase 28. Mai 2003 15:12

Moin Eleonora,

dazu musst Du Dich vom angelickten Knoten die Parents hochhangeln, bis es keinen Parent mehr gibt, und dabei den Ergebnisstring erzeugen.
Beispielsweise so:

Delphi-Quellcode:
procedure TfrmMAIN.TreeView1Click(Sender: TObject);

var
  sPath : string;
  tnWork : TTreeNode;

begin
  // Kein Node angeklickt, dann gibt's auch nichts zu tun
  if TreeView1.Selected = nil then exit;
  tnWork := TreeView1.Selected;
  sPath := '';
  repeat
    sPath := tnWork.Text + '\' + sPath;
    tnWork := tnWork.Parent;
  until tnWork = nil;
  Edit1.Text := sPath;
end;

eleonora 2. Jun 2003 10:49

Hallo!

Sorry das ich erst so spät antworte, aber letzte Woche Freitag hatte ich Urlaub und dabei ganz vergessen, dass ich ja hier noch was gepostet hatte!

Ich habe jetzt mal die verschiedenen Sachen ausprobiert, allerdings bringt er mir jedesmal ne Fehlermeldung!

Könnte es daran liegen, dass ich keinen TreeView sondern einen VirtuelExplorerTreeview benutze?

Also mein Code sieht jetzt folgendermassen aus:

Code:
[1]procedure Tpath.path_treeChange(Sender: TBaseVirtualTree;
[2] Node: PVirtualNode);
[3]
[4]var
[5] sPath : string;
[6] tnWork : PVirtualNode;
[7]
[8]begin
[9] // Kein Node angeklickt, dann gibt's auch nichts zu tun
[10] if path_tree.Selected = nil then exit;
[11] tnWork := path_tree.Selected;
[12] sPath := '';
[13] repeat
[14]   sPath := tnWork.Text + '\' + sPath;
[15]   tnWork := tnWork.Parent;
[16] until tnWork = nil;
[17] path_show.Text := sPath;
[18]end;
Und die Fehlermeldung in Zeile 10 lautet:

[Fehler] eraser_path.pas(96): '[' erwartet, aber '=' gefunden

Das wäre jetzt eine von 3 Fehlermeldungen!
Kann mir jemand dabei Helfen, denn ich komme absolut nicht weiter!

Danke schon mal!

Eleonora

Christian Seehase 2. Jun 2003 10:56

Moin Eleonora,

den von Dir genannten TreeView kenne ich leider nicht.
Woher stammt der?

Das Prinzip mit dem Hochhangeln dürfte sich m.E. allerdings nicht verändern.

eleonora 2. Jun 2003 11:53

Hallo!

Ich habe jetzt einen anderen Weg gefunden um mir das anzeigen zu lassen!

Code:
path_show.Text := path_tree.SelectedPath;
Trotzdem Danke für die Hilfe!

Eleonora


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz