我用的就是 if treeview1.Subselect.Index=1 then…… 但是我把字节点都设成1……10,父节点全是0,我一用上面的语句,点击父节点第二个就执行了then后面的,点击子节点第二个也执行then后面的,而不是第一个,这是怎么回事?
procedure TForm1.TreeView1Click(Sender: TObject); begin if treeview1.Selected.Level=1 then begin adoquery1.Close; adoquery1.SQL.Clear; adoquery1.sql.add('select * from tree..testtree where longid=:aa'); adoquery1.Parameters.ParamByName('aa').Value:=copy(treeview1.Selected.Text,4,2); showmessage(copy(treeview1.Selected.Text,4,2)); adoquery1.open; edit1.text:=adoquery1.fieldbyname('longid').value; edit2.text:=adoquery1.fieldbyname('text').value; //treeview1.Selected:=nil; //edit1.text:=treeview1.Selected.Text; end; if treeview1.Selected.Level=2 then begin adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('select* from tree..node where names=:aa'); adoquery1.Parameters.ParamByName('aa').Value:=copy(treeview1.Selected.Text,2,4); showmessage(copy(treeview1.Selected.Text,2,4)); adoquery1.Open; edit1.Text:=treeview1.Selected.Parent.Text; edit2.Text:=''; edit3.Text:=adoquery1.FieldValues['names']; edit4.Text:=adoquery1.FieldValues['ide']; end; end; 足够解决你问题了吧?
但是我把字节点都设成1……10,父节点全是0,我一用上面的语句,点击父节点第二个就执行了then后面的,点击子节点第二个也执行then后面的,而不是第一个,这是怎么回事?
begin
if treeview1.Selected.Level=1 then
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.sql.add('select * from tree..testtree where longid=:aa');
adoquery1.Parameters.ParamByName('aa').Value:=copy(treeview1.Selected.Text,4,2);
showmessage(copy(treeview1.Selected.Text,4,2));
adoquery1.open;
edit1.text:=adoquery1.fieldbyname('longid').value;
edit2.text:=adoquery1.fieldbyname('text').value;
//treeview1.Selected:=nil;
//edit1.text:=treeview1.Selected.Text;
end;
if treeview1.Selected.Level=2 then
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select* from tree..node where names=:aa');
adoquery1.Parameters.ParamByName('aa').Value:=copy(treeview1.Selected.Text,2,4);
showmessage(copy(treeview1.Selected.Text,2,4));
adoquery1.Open;
edit1.Text:=treeview1.Selected.Parent.Text;
edit2.Text:='';
edit3.Text:=adoquery1.FieldValues['names'];
edit4.Text:=adoquery1.FieldValues['ide'];
end;
end;
足够解决你问题了吧?