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

Вниз

степень вложенности treeview   Найти похожие ветки 

 
syte_ser78 ©   (2005-01-05 12:49) [0]

как определить сабж?
Тоесть какой уровень вложенности имеет выбранный эллемент?


 
DiamondShark ©   (2005-01-05 12:51) [1]

TTreeNode.Level


 
syte_ser78 ©   (2005-01-05 13:59) [2]

Спасибо.
А кто как бы решил такую задачу:
Есть триивив
а
 б
   в
     г - selected

нужно получить полный путь к выделенному элементу типа а/б/в/г

Есть вариант.
г пишем в масив, переходим к предку, пишем в масив и так до ...level=0 Потом читаем массив в обратном порядке.

Как можно по другому?


 
begin...end ©   (2005-01-05 14:05) [3]

> [2] syte_ser78 ©   (05.01.05 13:59)

Я бы сделал что-то вроде этого:

var
 Node: TTreeNode;
 Path: String;

begin
 Node := TreeView.Selected;
 while Node <> NIL do
 begin
   Path := Node.Text + "/" + Path;
   Node := Node.Parent
 end
end.


 
Кудесник ©   (2005-01-05 14:13) [4]

Если не жалко ресурсов, то можешь прописывать путь в Data... %)


 
SergP ©   (2005-01-05 14:41) [5]


>  [4] Кудесник ©   (05.01.05 14:13)
> Если не жалко ресурсов, то можешь прописывать путь в Data...
> %)


Data предназначено для хранения pointer"а, и непосредственно хранить там можно до 4-х байт инфы. А хранить данные, (которые можно получить более простым способом) в другом месте, а в data указатель на них - это извращение.


 
begin...end ©   (2005-01-05 14:44) [6]

> [5] SergP ©   (05.01.05 14:41)

Ну тогда в Borland"е работают извращенцы. См. описание TTreeNode.Data и пример там же.


 
Кудесник ©   (2005-01-05 14:51) [7]


> [5] SergP ©   (05.01.05 14:41)
> Data предназначено для хранения pointer"а

А я о чём? Засандалить туду PChar... в него прописать путь. При добавлении узла, считывать путь из Data парента, и прибавлять имя создаваемого. При выводе, просто считывать путь из Data. Что-то типа этого... %)


 
syte_ser78 ©   (2005-01-05 14:55) [8]


> begin...end ©   (05.01.05 14:05) [3][Ответить]

Чем не ответ?


 
DiamondShark ©   (2005-01-05 16:29) [9]


function NodePath(Node: TTreeNode): string;
begin
 if Node.Parent = nil
   then Result := Node.Text
   else Result := NodePath(Node.Parent) + "\" + Node.Text;
end;


 
AlterEgo of WondeRu ©   (2005-01-05 16:48) [10]

SergP ©   (05.01.05 14:41) [5]
а в data указатель на них - это извращение.


я думал, что я ламер, а оказывается еще и извращенец!



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

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

Наверх




Память: 0.49 MB
Время: 0.032 c
14-1104810577
DelphiN!
2005-01-04 06:49
2005.01.23
Где скачать все выпуски RSDN Magazine ?


1-1105456604
sever
2005-01-11 18:16
2005.01.23
Вопрос по созданию классов


6-1099593131
Sicilla
2004-11-04 21:32
2005.01.23
Разрыв соединения


1-1105557957
chir
2005-01-12 22:25
2005.01.23
ToolBar - ToolButton - как написать текст на кнопке?


14-1105114572
Andrewp
2005-01-07 19:16
2005.01.23
Домовой.