Вниз
Скачать: CL | DM;

Путь к ветке дерева   Найти похожие ветки 

 
harismatik   (2002-12-18 19:20) [0]

У меня есть дерево папок. Как, выбрав одну из них, получить полный путь к ней и вывести этот путь как Label.caption?


 
dona   (2002-12-18 19:28) [1]


Используйте компонент OpenDialog (страница Dialogs).
Например,
if OpenDialog1.Execute then Label1.Caption:=OpenDialog1.FileName;


 
Skier ©   (2002-12-18 19:28) [2]

>harismatik

Если я правильно понял
то тебе понадобятся св-ва

- TTreeView.Selected
- TTreeNode.Parent
- TTreeNode.Text

движешься от выбранного узла дерева (TTreeView.Selected)
вверх по иерархии папок (TTreeNode.Parent) и суммируешь путь
(TTreeNode.Text) в конце получить полный путь..

Ну а вообще-то лучше запоминать полный путь к узлу
при построении дерева папок. (здесь : TTreeNode.Data)


 
Danlicha ©   (2002-12-18 19:35) [3]

Не лучше


 
harismatik   (2002-12-18 19:51) [4]

2 Skier - ты меня правильно понял. И в принципе, я это сделал в цикле. Только остался один вопрос: как при выборе папки определить ее индекс{то бишь индекс Items} (что-то не хочется перебирать все папки в цикле, пока не будет найдена та, которая имеет признак Selected) Может есть какой другой способ? И какой ивент компонента TreeView лучше для этого использовать (я использую OnClick)?


 
Skier ©   (2002-12-19 09:57) [5]

>harismatik
А зачем искать узел с признаком Selected ???
Его можно получить сразу...
TTreeView.Selected - вернёт тебе указатель на объект TTreeNode,
т.е. указатель на узел, который выбран в данный момент времени...
Ежели TTreeView.Selected = nil, то - нет выбранного узла.

А что касается индекса узла, то посмотри св-ва
TTreeNode.Index и TTreeNode.AbsoluteIndex



 
Polevi ©   (2002-12-19 10:27) [6]

procedure GetPath(Node:TTreeNode;var s:string)
begin
s:=s+Node.Text;
if Assigned(Node.Parent) then GetPath(Node.Parent,s);
end;

GetPath(TV.Selected,s);
ShowMessage(s);



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
14-99306
AlexGreG
2002-12-09 11:34
2002.12.30
SEX в коде


4-99409
Maksss
2002-11-15 02:33
2002.12.30
без SYSUTILS.PAS


3-99036
Z-man7777
2002-12-09 12:30
2002.12.30
Как реализовать ведение лога ошибок?


6-99239
dkDimon
2002-10-27 18:17
2002.12.30
IP своего компьютера


14-99310
harismatik
2002-12-09 20:27
2002.12.30
Категории спайдеров




   Наверх