Вниз
Скачать: 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 вся ветка

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



Память: 0.47 MB
Время: 0.024 c
3-1103282169
}|{yk
2004-12-17 14:16
2005.01.23
Что может означать данная ошибка?


1-1105111093
ВиТ
2005-01-07 18:18
2005.01.23
Хранение Id шников в ListView


1-1105007313
Федюлин Григорий
2005-01-06 13:28
2005.01.23
И ещё одна ощибка...


1-1105602061
Gear
2005-01-13 10:41
2005.01.23
Опять потоки.


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




   Наверх