Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по компоненту TreeView [D7, Win2k]


remlin ©   (2005-06-02 10:11:00) 

Как в компоненте TreeView узнать, выделенный узел является главным узлом или дочерним?
И ещё мне надо связать с каждым узлом дерева текстовые данные, например: описание, id узла, ссылка на файл и т.д. Как это можно сделать наиболее простым способом?
Спасибо.


Ega23   (2005-06-03 13:12:00) [1]


PStructFile=^StructFile;
StructFile = record
             ItemName:string; // имя узла
             ItemFunction:string; // просто текст
             ItemDescription:string; //описание
             ... //что-то ещё
             end;

var
p:PStructFile;
begin
New(P);
P^.ItemName='';
P^.ItemDescription=....
.....
Node.Date:=P;


end;


Естественно, не забыть Dispose сделать.


remlin   (2005-06-03 12:57:00) [2]

А можно примерчик про присваивания каждому узлу объекта. А то что-то получается - да не так.
Надо каждому узлу присвоить такую структуру:
  StructFile = record
              ItemName:string; // имя узла
              ItemFunction:string; // просто текст
              ItemDescription:string; //описание
              ... //что-то ещё
              end;

При создании узла функцией AddObject появляется модальное окно, где я в Edit и заполняю поля структуры.
Потом задача стоит при закрытии приложения записать всё это в файл.А при открытии считать.При щелчке по узлу дерева должно появиться модальное окно со значениями полей структуры StructFile принадлежащей узлу.


remlin   (2005-06-02 13:09:00) [3]

Спасибо!


Ega23   (2005-06-02 12:44:00) [4]

А можно примерчик по TTreeNode.Parent (Ega23). Как это реализовать?

if not Assigned(Node.Parent) then // корневой узел
else // дочерний узел.

Вообще - вариантов - масса. Можно и с Level, как begin...end ©   (02.06.05 12:35) [5] написал.


begin...end   (2005-06-02 12:35:00) [5]

if Assigned(TreeView.Selected) then
 if TreeView.Selected.Level = 0 then
   // Выбран главный узел
 else
   // Выбран дочерний узел


remlin   (2005-06-02 12:34:00) [6]

А можно примерчик по TTreeNode.Parent (Ega23). Как это реализовать?


remlin   (2005-06-02 12:31:00) [7]

-->> s.s.
можно и так:
if TreeView.Selected.HasChildren then
Shwmessage('Узел имеет дочерние элементы')


-=S.S=-   (2005-06-02 11:25:00) [8]

If TreeView1.Selected.getFirstChild = nil then
 Shwmessage('Узел не имеет дочерних элементов')


Ega23   (2005-06-02 10:14:00) [9]

Как в компоненте TreeView узнать, выделенный узел является главным узлом или дочерним?

TTreeNode.Parent

И ещё мне надо связать с каждым узлом дерева текстовые данные, например: описание, id узла, ссылка на файл и т.д. Как это можно сделать наиболее простым способом?

TTreeNode.Data  - можешь туда любой указатель впихнуть. Например, на свою структуру, или класс.


Наверх

Титульная страница Поиск, карта сайта Написать письмо