Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];

Вниз

Подскажите пожалуйста: 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.029 c
8-1081937872
AlexK
2004-04-14 14:17
2004.06.27
Есть ли в Делфи аналог объекта Line (VisualBasic) HELP !!!


4-1084866284
PavelT
2004-05-18 11:44
2004.06.27
Программное изменение параметра (По умолчанию) в реестре


6-1083582436
Amid
2004-05-03 15:07
2004.06.27
Создать Функцию каторая ждала сообщение от Сервера


14-1086697773
Обучающийся
2004-06-08 16:29
2004.06.27
Утилиты для измерения температуры CPU, материнской платы и др.


4-1085050709
Jiurasdfgfr
2004-05-20 14:58
2004.06.27
Как запретить запуск второй копии программы?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский