Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.27;
Скачать: CL | DM;

Вниз

Подскажите пожалуйста: Treeview&TreeNode + array   Найти похожие ветки 

 
riko ©   (2004-06-08 16:28) [0]

Скорбно признавать, но силенок у меня нехватает.
Проблема в следующем:
есть массив (FKlasses: array of TFKlas;)
есть свойства этого TFKlas -
   IdNum: Integer read FIdNum write FIdNum;
   Names:  String read FNames write FNames;
   PredokNum:  Integer read FPredokNum write FPredokNum;
После некоторых манипуляций в массиве есть данные.
Как занести эти данные в TreeView, согласно:
   FKlasses[i].PredokNum = номер (IdNum) предка в базе;
топчусь на месте уже неделю, все понимаю, а написать не получается.....
подтолкните, плиз.
Спасибо.


 
dmitry99 ©   (2004-06-12 04:51) [1]

TTreeNode.Data


 
riko ©   (2004-06-12 17:26) [2]

спасибо, но что-то получается не совсем так, как хотелось бы....
ладненько, придется обойтись самому ....


 
Igorek ©   (2004-06-12 21:50) [3]

procedure TForm1.Button1Click(Sender: TObject);

 procedure AddItems(ParentNode: TTreeNode; const Index: Integer);
 var
   CurNode: TTreeNode;
   I: Integer;
 begin
   CurNode := TreeView1.Items.AddChild(ParentNode, FKlasses[Index].FNames);
   for I := 0 to Pred(Length(FKlasses)) do
     if (FKlasses[I].FPredokNum = Index) and (FKlasses[I].FPredokNum <> 0) then
       AddItems(CurNode, I);
 end;
 
var
 Root: Integer;
begin
 Root := 0;
 while Root < Length(FKlasses) do
 begin
   if FKlasses[Root].FPredokNum = 0 then // FPredokNum = 0 признак корня
     break;
   Inc(Root);
 end;

 AddItems(nil, Root);
end;


 
riko ©   (2004-06-15 13:50) [4]

to Igorek:
нет, в том то и дело, что в корень я добавлять умею,даже все имеющиееся значения FKlasses с признаком FPredokNum=0, хотя огромное спасибо....
Проблема в следующем, я добавляю корни веток, но после этого не могу в необходимую ветку добавить ветви в цикле.
Застрял на том, как уникально идентифицировать корни и последующие узлы, как увязать это со значением в базе, и как последовательно сделать текущими все Items, то есть как програмно перебрать все ветви и ответления сверяя значение идентификатора (ID)со значением FPredokNum добавляемого элемента, тем более что я заранее не знаю ни колличество ни значение элементов массива.
TTreeNode.Data конечно многое пояснил, но там осталось только научится последовательно переходить по всем ветвям и узлам.
Если есть какие нибудь ресурсы именно по этому вопросу - дайте пожалуйста линк.
Спасибо.


 
Igorek ©   (2004-06-15 17:56) [5]


> riko ©   (15.06.04 13:50) [4]

Не понял,
> Igorek ©   (12.06.04 21:50) [3]
- это решение задачи

> riko ©   (08.06.04 16:28)  

?

> TTreeNode.Data конечно многое пояснил

В упор не понимаю что он тебе пояснил в контексте твоей задачи. Поясни мне. Заодно и доработай изначальную постановку задачи.

Потом обговорим [4].



Страницы: 1 вся ветка

Текущий архив: 2004.06.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.03 c
8-1081859461
s
2004-04-13 16:31
2004.06.27
tif-формат


3-1086152913
korvin
2004-06-02 09:08
2004.06.27
Заказ имени поля в результате запроса


14-1086940194
}|{yk
2004-06-11 11:49
2004.06.27
Презумпция невиновности в отношении публичных особ


14-1086615778
j
2004-06-07 17:42
2004.06.27
Есть новости?


1-1086778691
Виталя
2004-06-09 14:58
2004.06.27
Как положить на форму поверх уже "лежащего" Frame комп. Label.