![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TreeView полный путь [D6, Win95/98]
electric © (2004-12-12 21:34:00)Как получить полный путь к выделенной строке? Как в проводнике это сделано. Путь изменяется динамически.
OneFragLeft (2004-12-12 23:18:00) [1]Тебе спасибо. Заставил старого обезьяна мозгами пошевелить=)
electric (2004-12-12 23:08:00) [2]> OneFragLeft © (12.12.04 22:49) [5]
Работает отлично! =) Благодарю! =)
Sergey_Masloff (2004-12-12 23:05:00) [3]electric (12.12.04 23:00) [8]
>при условии что количество узлов заранее неизвестно
Что такое рекурсия знаешь? Если нет то google или yandex, поиск и через 1 минуту все будет понятно. В конце концов цикл с постусловием сделать - вот как минимум 2 абсолютноочевидных решения.
OneFragLeft (2004-12-12 23:02:00) [4]Меня сёдня все игнорят? Пойду спать:)
begin...end (2004-12-12 23:00:00) [5]Ну вот, уже вижу у себя ошибку. Если ничего не выбрано, то удаляется символ из пустой строки. :-(Пойду спать...
electric (2004-12-12 23:00:00) [6]> begin...end © (12.12.04 22:24) [2]
К примеру в проводнике структура каталогов :
-C
+Programm Files
-Windows
-Temp
-Games
-Balls
При нажатии на папку Balls в поле адреса появится путь к этой папке C:\Games\Balls. Как это же сделать в TreeView при условии что количество узлов заранее неизвестно?
begin...end (2004-12-12 22:50:00) [7]> [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 не проверял, заранее прошу прощения за возможные ошибки.
OneFragLeft (2004-12-12 22:49:00) [8]
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;
так? Не судите строго.
electric (2004-12-12 22:47:00) [9]>Sergey_Masloff (12.12.04 22:25) [3]
Ведь неизвестно сколько раз придётся писать Parent чтобы добраться до самого корня! Как это можно сделать для динамического количества узлов?
Sergey_Masloff (2004-12-12 22:25:00) [10]В TreeView путь? Подняться к корню последовательно. У TTreeNode естьсвойство Parent
begin...end (2004-12-12 22:24:00) [11]Не понял вопроса. Поподробнее, пожалуйста.
electric (2004-12-12 22:19:00) [12]Полный адресс. например C:\Games\Balls\Balls.exe