delphi treeview添加子节点的问题

2025-01-03 14:20:25
推荐回答(1个)
回答1:

var
b2:TTreeNode;

treeview1.Items.Add(nil,'教师');
b2:=treeview1.Items.Add(nil,'学生');

treeview1.Items.AddChild(TreeView1.Items[0],'计算机学院');
treeview1.Items.AddChild(TreeView1.Items[0],'人文学院');
treeview1.Items.AddChild(TreeView1.Items[0],'法学院');
treeview1.Items.AddChild(TreeView1.Items[0],'机械学院');
treeview1.Items.AddChild(TreeView1.Items[0],'经贸学院');

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from teachers ');
ADOQuery1.Open;
for i := 0 to adoquery1.recordcount-1 do
begin
str1 := adoquery1.FieldByName('学院').AsString;
str2:=adoquery1.FieldByName('姓名').AsString;
strSel := TMyStrSel(GetEnumValue(TypeInfo(TMyStrSel), trim(str1)));

case strSel of
计算机学院:treeview1.Items.AddChild(TreeView1.Items[0].Item[0],trim(str2));
人文学院: treeview1.Items.AddChild(TreeView1.Items[0].Item[1],trim(str2));
法学院: treeview1.Items.AddChild(TreeView1.Items[0].Item[2],trim(str2));
机械学院: treeview1.Items.AddChild(TreeView1.Items[0].Item[3],trim(str2));
经贸学院: treeview1.Items.AddChild(TreeView1.Items[0].Item[4],trim(str2)) ;
end;
adoquery1.next;
end;

treeview1.Items.AddChild(b2,'计算机学院');
treeview1.Items.AddChild(b2,'人文学院');
treeview1.Items.AddChild(b2,'法学院');
treeview1.Items.AddChild(b2,'机械学院');
treeview1.Items.AddChild(b2,'经贸学院');

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from students ');
ADOQuery1.Open;
for i := 0 to adoquery1.recordcount-1 do
begin
str1 := adoquery1.FieldByName('学院').AsString;
str2:=adoquery1.FieldByName('姓名').AsString;
strSel := TMyStrSel(GetEnumValue(TypeInfo(TMyStrSel), trim(str1)));

case strSel of
计算机学院:treeview1.Items.AddChild(b2.Item[0],trim(str2));
人文学院: treeview1.Items.AddChild(b2.Item[1],trim(str2));
法学院: treeview1.Items.AddChild(b2.Item[2],trim(str2));
机械学院: treeview1.Items.AddChild(b2.Item[3],trim(str2));
经贸学院: treeview1.Items.AddChild(b2.Item[4],trim(str2)) ;
end;
adoquery1.next;
end;