Главная страница
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.037 c
1-1104831765
studentas
2005-01-04 12:42
2005.01.23
Как вызвать ShowModal дочерней форме?


1-1105609637
Arm79
2005-01-13 12:47
2005.01.23
Как получить документ Word в виде картинки?


14-1104968574
InTr
2005-01-06 02:42
2005.01.23
Внедрение своего кода в другой бинарник


4-1101974919
Андрюша
2004-12-02 11:08
2005.01.23
Как можно отловить системные клавиши?


3-1103619169
Romano
2004-12-21 11:52
2005.01.23
Ошибка InterBase