Главная страница
    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
3-1085756667
Bizons
2004-05-28 19:04
2004.06.27
GEN_ID() в IB6


14-1086388326
Soft
2004-06-05 02:32
2004.06.27
Я сдал кандидатский экзамен по философии на 5.


1-1086868312
wisekaa
2004-06-10 15:51
2004.06.27
Работа со строками


1-1087106612
Воланд
2004-06-13 10:03
2004.06.27
Проблема с Мемо! в Lines не сохраняется информация


14-1085697963
lak
2004-05-28 02:46
2004.06.27
http://wifi.yandex.ru/





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский