type
TTreeData= ^PTreeData;
PTreeData=Record
id: string;
name: string;
end;
var
TreeData: TTreeData;
TreeNode1,TreeNode2: TTreeNode;
id,name: string;
i: integer;
begin
ADOQuery1.Open;
ADOQuery1.First;
i:=1;
while not ADOQuery1.Eof do
begin
id:=ADOQuery1.FieldByName('id').AsString;
name:=ADOQuery1.FieldByName('name').AsString;
New(TreeData);
TreeData^.id:=id;
TreeData^.name:=name;
TreeNode1:=TreeView1.Items.AddChild(nil,name);
TreeNode1.Data:=TreeData;
TreeNode1.StateIndex:=1;
ADOQuery2.Open;
ADOQuery2.First;
while not ADOQuery2.Eof do
begin
if Copy(ADOQuery2.FieldByName('id').AsString,1,1)=IntToStr(i) then
begin
id:=ADOQuery2.FieldByName('id').AsString;
name:=ADOQuery2.FieldByName('name').AsString;
New(TreeData);
TreeData^.id:=id;
TreeData^.name:=name;
TreeNode2:=TreeView1.Items.AddChild(TreeNode1,name);
TreeNode2.Data:=TreeData;
TreeNode2.StateIndex:=2;
ADOQuery2.Next;
end
else
ADOQuery2.Next;
end;
inc(i);
ADOQuery1.Next;
end;
end;