//从数据库中提取数据显示在TreeView1中
procedure Tbumen_set_frm.BitBtn1Click(Sender: TObject);
var
i,k:integer;
ins,ss,kk:string;
tmp:string ;
MyRecPtr: PMyRec;
begin
TreeView1.Items.Clear ;
i:=0;
k:=0;
ins:='';
ins:=ins+ ' select * from 部门表 ' ;
ADOQuery1.close;
ADOQuery1.SQL.Clear ;
ADOQuery1.sql.add(ins);
adoquery1.open;
while not adoquery1.eof do
begin
kk:=ADOQuery1.fieldbyname('father').AsString ;
if ADOQuery1.FieldByName('father').AsString ='' then
begin
New(MyRecPtr);
MyRecPtr^.FName := adoquery1.FieldByName('级别').AsString ;
MyRecPtr^.LName := adoquery1.FieldByName('名称'). asstring ;
ss:= adoquery1.FieldByName('级别').AsString;
TreeView1.Items.AddObject(nil,MyRecPtr^.FName, MyRecPtr);
end else
begin
for i := 0 to TreeView1.Items.Count-1 do
begin
tmp:=pchar(TreeView1.items.data);//?这一句怎样写,取出TreeView1中的显示名称字段对应的级别
if (tmp = kk )then
begin
New(MyRecPtr);
MyRecPtr^.FName := adoquery1.FieldByName('级别').AsString ;
MyRecPtr^.LName := adoquery1.FieldByName('名称').AsString ;
ss:= adoquery1.FieldByName('级别').AsString;
TreeView1.Items.AddChildObject(TreeView1.items,MyRecPtr^.FName,MyRecPtr);//变了后TreeView1.items,也存在问题廖
break;
end; // if
end; // for
end;
ADOQuery1.Next ;
end;
显示select 的内容
procedure Tbumen_set_frm.BitBtn3Click(Sender: TObject);
begin
Label1.Caption := PMyRec(TreeView1.Selected.Data)^.FName + ' ' +
PMyRec(TreeView1.Selected.Data)^.LName;
end;