![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TreeView
jjj © (2006-09-22 18:12:00)А как добавить в ручную ветку дерева (основную и дочернюю)?
jjj (2006-09-22 18:42:00) [1]Что-то не очень получается, но скорее всего я чего-то не догоняю :(
У меня следующая ситуация.
Есть таблица с полями id, name, parent
parent - это id родителя.
Вот по этой таблице мне и надо построить дерево.
Я раньше никогда с деревьями не работал, поэтому если кто может помочь, подскажите пожалуйста поподробнее. Очень надо.
Спасибо.
jjj (2006-09-22 18:19:00) [2]
> alles © (22.09.06 18:16) [1]
Ага, програмно...
Ega23 (2006-09-22 18:18:00) [3]вот рекурсивный метод потомка TCustomTreeView. Строит дерево по списку объектов TKdrDBTreeViewItemIdent
procedure TCustomKdrDBTreeView.AddAllNodes(ParentID: Variant;
ParentNode: TTreeNode);
var
k:Integer;
CurrNode:TTreeNode;
begin
for k:=0 to FTreeItems.Count-1 do
begin
With TKdrDBTreeViewItemIdent(FTreeItems.Items[k]) do
begin
if (Node<>nil) or (ParentKeyFieldValue<>ParentID) then Continue;
if ParentNode=nil then
CurrNode:=Items.Add(nil, DisplayFieldValue)
else
CurrNode:=Items.AddChild(ParentNode, DisplayFieldValue);
CurrNode.ImageIndex:=ImageIndex;
CurrNode.SelectedIndex:=ImageIndex;
Node:=CurrNode;
CurrNode.Data:=FTreeItems.Items[k];
AddAllNodes(KeyFieldValue, CurrNode);
end; // With
end; // for
end;
alles (2006-09-22 18:16:00) [4]как добавить в ручную
это программно чтоли?