请TreeView高手指教关于节点问题(50分)

  • 主题发起人 主题发起人 dglb
  • 开始时间 开始时间
D

dglb

Unregistered / Unconfirmed
GUEST, unregistred user!
我把一个数据表用一TREEVIEW显示,数据表是用ID,PARENTID方式存放的,因想提高效率,故只想在要展开时才将数据读入到TREEVIEW里,我想问一下有什么办法知道正在展开的节点?我试过用 TTreeNode.Selected ,如果只用键盘或鼠标双击item展开的话时是正确的但,但如果鼠标是点击的tem前的'+'就不能用TTreeNode.Selected的方法了.请看看我的原程序:

procedure TForm1.GenTreeExpanding(Sender: TObject; Node: TTreeNode;
var AllowExpansion: Boolean);
Var
ParentCode:String;
ChildNode:TTreeNode;
CurNode:TTreeNode;
ChildCount:integer;
MyRecPt:PMyRec;
i:integer;
begin
GenTree.SetFocus;
if GenTree.Selected.HasChildren then {应该在这里,我想要展开的节点不是当前节点}
begin
ChildCount:=GenTree.Selected.Count;
for i:=1 to ChildCount do
begin
if i=1 then ChildNode:=GenTree.Selected.GetFirstChild else ChildNode:=GenTree.Selected.GetNextChild(ChildNode);
if not PMyRec(ChildNode.Data)^.ChildAdded then
begin
PMyRec(ChildNode.Data)^.ChildAdded:=True;
ParentCode:=PMyRec(ChildNode.Data)^.FID;
if Qr1.Active then Qr1.Close;
Qr1.SQL.Clear;
Qr1.SQL.Text:='select ID,Name,ParentID from PersonInfo where ParentID="'+ParentCode+'" order by ID';
Qr1.Open;
While not Qr1.Eof do
begin
New(MyRecpt);
MyRecpt^.FID:=Qr1.FieldValues['ID'];
MyRecpt^.ChildAdded:=False;
GenTree.items.AddChildObject(ChildNode,Qr1.FieldValues['Name'],MyRecPt);
Qr1.Next;
end;
end;
end;
end;
end;
 
问题已解决,在盒子上已得到答案.谢谢各位的关注!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
763
import
I
后退
顶部