RE: TreeView
- From
- Мищенко Александр Ни
колаевич ()
- To
- All ()
- Date
- 2002-04-04T08:03:49Z
- Area
- RU.DELPHI
From: Мищенко Александр Ни
колаевич <A.Mischenko@ygd.gazprom.ru>
Приветствую, Антон!
> MyTreeNode:=TreeView1.Items.Add (nil,'Test');
> таким образом создаю главную ветку ^^^^^
> А как мне создать дочернюю ветку в поле Test не зная что она н
> азывается
> так ?? Т.е у меня есть поток данных категорий и субкатегорий,
> и как мне
> определить TTreeNode по названию, что бы каждую субкатегорию м
> ожно было
> воткнуть в нужную категорию ?
> Подскажите плиз.
>
> MyTreeNode:=..... <- что тут надо написать ??
> TreeView1.Items.AddChild(MyTreeNode,'subTest');
>
Если данные в потоке идут последовательно (КАТЕГОРИЯ-->ЕЁ СУБКАТЕГОРИЯ), то
можно сделать так
var CatNode,SubCatNode : TTreeNode;
i,j : integer;
begin
for i:=0 to Categories.Count-1 do
begin
CatNode:=TreeView1.Items.Add (nil,Categories[i].Name);
for j:=0 to SubCategories.Count-1 do
SubCatNode:=TreeView1.Items.AddChild(CatNode,SubCategories[j].Name);
end;
end;
Если данные поступают в произвольном порядке, то тогда так
var CatNode,SubCatNode : TTreeNode;
i,j : integer;
begin
case Categories.Type of
Cat : begin
CatNode:=TreeView1.Items.Add (nil,Categories[i].Name);
end;
SubCat :
begin
CatNode:=TreeView1.GetFirstNode;
while CatNode<>nil do
begin
if CatNode.Text=SubCategory.CatText then Break;
CatNode:=CatNode.GetNextSibling;
end;
if CatNode<>nil then
SubCatNode:=TreeView1.Items.AddChild(CatNode,SubCategory.Name)
else
begin
CatNode:=TreeView1.Items.Add (nil,SubCategory.CatText);
SubCatNode:=TreeView1.Items.AddChild(CatNode,SubCategory.Name);
end;
end;
end;
Если искать надо не по тексту, то придется использовать свойство
CatNode.Data и методы AddObject and AddChildObject для хранения Data.
Успехов!
--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5
* Origin: Talk.Mail.Ru (2:5020/400)