Форум: "Основная";
Текущий архив: 2007.10.07;
Скачать: [xml.tar.bz2];
ВнизКомпонент TreeView Найти похожие ветки
← →
Егоров А.Н. (2007-07-26 15:53) [0]Есть TreeView1 с тремя уровнями и Label1:
- Товары
+ Приход
+ Расход
- .....
+ .....
+ .....
- Справочники
+ Товаров
+ .....
- Территориальные справочники
- Страны
- Города
- .....
- .....
+ .....
+ .....
Подскажите, как при выборе, например, узла "Страны" получить:
Label1.Caption = "Справочники - Территориальные справочники - Города".
← →
Сергей М. © (2007-07-26 16:01) [1]Пройтись в цикле до корня, попутно считывая подписи проходимых узлов и формируя список строк. Сформировать результирующую строку в цикле по всем элементам полученного списка.
← →
Сергей М. © (2007-07-26 16:10) [2]ДЛя 3-хуровневого дерева можно обойтись и без списка, формируя результ.строку прямо по ходу цикла к корню.
Случай со списком более универсален в плане производительности алгоритма в целом при работе с деревом без явного ограничения уровеня вложенности
← →
Егоров А.Н. (2007-07-27 08:29) [3]Нашел решение в справке по Delphi (DRKB3_Full.chm):
// Получение пути заголовков к выбранному узлу в RzTreeView1
function GetPathToNode(Node: TTreeNode): string;
begin
Result := "";
if Node = nil then
exit;
while Node <> nil do begin
Result := Node.Text + "\" + Result;
Node := Node.Parent;
end;
Delete(Result, length(Result), 1);
end;
Все работает в лучшем виде!
// Выбор пунктов ДРЕВОВИДНОГО МЕНЮ
procedure TForm_MainTree.RzTreeView1Change(Sender: TObject;
Node: TTreeNode);
begin
// Запись пути заголовков к выбранному узлу RzTreeView1 в Label1
Label1.Caption:=GetPathToNode(RzTreeView1.Selected);
....
....
....
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2007.10.07;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.043 c