Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Разварот узла. [D7, XP]


Kolobok ©   (2011-06-25 08:47:00) 

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

//Заполнение верхнего уровня
procedure TForm1.FormShow(Sender: TObject);
var nod: TTreeNode;
begin
Query.Close;
Query.SQL.Clear;
Query.SQL.Add('select * from class');
Query.Open;
TreeView1.Items.Clear;
while not Query.Eof do
begin
SetLength(classArr, Length(classArr) + 1);
nod := TreeView1.Items.Add(nil, Query.FieldValues['Class']);
classArr[length(classArr) - 1] := Query.FieldValues['Index'];
nod.Data := Ptr(length(classArr) - 1);
nod.HasChildren := true;
TreeView1.Items.AddChild(nod, '~');
Query.Next;
end;
Query.Close;
end;

///Разварот узла. Тут происходит ошибка
procedure TForm1.TreeView1Expanded(Sender: TObject; Node: TTreeNode);
var tmp: TTreeNode;
begin
if Node.getFirstChild.Text = '~' then
case Node.Level of
0:
begin
Query1.SQL.Text := 'select * from object where index2 = :index;';
Query1.Params.Clear;
Query1.Params.CreateParam( ftInteger, 'index', ptInput);
end;
1:
begin
Query1.SQL.Text := 'select * from Propetries where index2 = :index1;';
Query1.Params.Clear;
Query1.Params.CreateParam( ftInteger, 'index1',  ptInput);
end;
end;
Query1.Open;
while not Query1.Eof do
begin
case Node.Level of
0:
begin
SetLength(objArr, Length(objArr) + 1);
tmp := TreeView1.Items.Add(Node, Query1.FieldValues['Object']);
objArr[length(objArr) - 1] := Query1.FieldValues['Index1'];
tmp.Data := Ptr(length(objArr) - 1);
tmp.HasChildren := true;
TreeView1.Items.AddChild(tmp, '~');
end;
1:
begin
SetLength(propArr, Length(propArr) + 1);
tmp :=TreeView1.Items.Add(Node, Query1.FieldValues['propetries']);
propArr[length(propArr) - 1] := Query1.FieldValues['Index2'];
tmp.Data := Ptr(length(propArr) - 1);
tmp.HasChildren := true;
TreeView1.Items.AddChild(tmp, '~');
end;
end;
Query1.Next;
end;
Query1.Close;
end;


Kolobok   (2011-06-25 11:05:00) [1]

А всё. Эту проблему я решил. Просто пропустил букву в запросе.
Но, почему то, нижние уровни всё равно не появляются.


Kolobok   (2011-06-25 08:57:00) [2]

Ошибка: http://i.piccy.info/i5/75/52/1665275/123112312122aea.jpg


Наверх

Титульная страница Поиск, карта сайта Написать письмо