Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.26;
Скачать: CL | DM;

Вниз

TreeView полный путь   Найти похожие ветки 

 
electric   (2004-12-12 21:34) [0]

Как получить полный путь к выделенной строке? Как в проводнике это сделано. Путь изменяется динамически.


 
electric   (2004-12-12 22:19) [1]

Полный адресс. например C:\Games\Balls\Balls.exe


 
begin...end ©   (2004-12-12 22:24) [2]

Не понял вопроса. Поподробнее, пожалуйста.


 
Sergey_Masloff   (2004-12-12 22:25) [3]

В TreeView путь? Подняться к корню последовательно. У TTreeNode естьсвойство Parent


 
electric   (2004-12-12 22:47) [4]

>Sergey_Masloff   (12.12.04 22:25) [3]

Ведь неизвестно сколько раз придётся писать Parent чтобы добраться до самого корня! Как это можно сделать для динамического количества узлов?


 
OneFragLeft ©   (2004-12-12 22:49) [5]

procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
label1.Caption:="";
while not(Node.Parent=nil) do
begin
 label1.Caption:=Node.Text+"\"+label1.Caption;
 node:=node.Parent;
end;
 label1.Caption:=Node.Text+":\"+label1.Caption;

end;


так? Не судите строго.


 
begin...end ©   (2004-12-12 22:50) [6]

> [4] electric   (12.12.04 22:47)

Что-то вроде этого:

var
 Path: String;
 Node: TTreeNode;
begin
 Path := "";
 Node := TreeView.Selected;
 while Assigned(Node) do
 begin
   Path := "\" + Node.Text + Path;
   Node := Node.Parent
 end;
 Delete(Path, 1, 1)
end.


P.S. Написал прямо здесь, в Delphi не проверял, заранее прошу прощения за возможные ошибки.


 
begin...end ©   (2004-12-12 23:00) [7]

Ну вот, уже вижу у себя ошибку. Если ничего не выбрано, то удаляется символ из пустой строки. :-( Пойду спать...


 
electric   (2004-12-12 23:00) [8]

> begin...end ©   (12.12.04 22:24) [2]

К примеру в проводнике структура каталогов :
-C
+Programm Files
-Windows
 -Temp
-Games
 -Balls

При нажатии на папку Balls в поле адреса появится путь к этой папке C:\Games\Balls. Как это же сделать в TreeView при условии что количество узлов заранее неизвестно?


 
OneFragLeft ©   (2004-12-12 23:02) [9]

Меня сёдня все игнорят? Пойду спать:)


 
Sergey_Masloff   (2004-12-12 23:05) [10]

electric   (12.12.04 23:00) [8]
>при условии что количество узлов заранее неизвестно
Что такое рекурсия знаешь? Если нет то google или yandex, поиск и через 1 минуту все будет понятно. В конце концов цикл с постусловием сделать - вот как минимум 2 абсолютноочевидных решения.


 
electric   (2004-12-12 23:08) [11]

> OneFragLeft ©   (12.12.04 22:49) [5]

Работает отлично! =) Благодарю! =)


 
OneFragLeft ©   (2004-12-12 23:18) [12]

Тебе спасибо. Заставил старого обезьяна мозгами пошевелить=)



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

Текущий архив: 2004.12.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
9-1093428278
XeNoN
2004-08-25 14:04
2004.12.26
Люди подскажите


14-1101477178
Красная Майка
2004-11-26 16:52
2004.12.26
Очередное предновогоднее ММР


1-1102775794
Bobby Digital
2004-12-11 17:36
2004.12.26
Площадь


11-1084524647
dimon1979
2004-05-14 12:50
2004.12.26
Взаимодействие KOL-форм


1-1102503043
mefisto
2004-12-08 13:50
2004.12.26
Как передать сообщение своей программе с коммандной строки?