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)