请教TTreeView的使用(50分)

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

dnb

Unregistered / Unconfirmed
GUEST, unregistred user!
Treeview中有a,b,c...n等若干个节点,希望在程序运行中用鼠标选择b节点时
发生某一事件,可我怎么知道使用者选择的b是而不是c呢?
我有一套徐新华的Delphi3编程指南,可怎么也看不明白。
提出这种简单的问题,还望各位大侠不要见笑,多多赐教!
最好有一个简单的例子,谢谢啦!!!
 
在OnMouseDown事件中使用TTreeVew.GetNodeAt(X, Y)得到选中的节点。若没有
节点被选中则返回值为nil,否则返回被选中的TTreeNode。
procedure TForm1.TreeView1MouseDown(Sender: TObject;
Button: TMouseButton;
Shift: TShiftState;
X, Y: Integer);
var Node:TTreeNode;
begin
Node:=TreeView1.GetNodeAt(x,y);
if Node<>nil then
ShowMessage(Node.Text);
end;
 
对 tqz的解释, 我补充一下:
如果仅做选择测定, 你可以使用OnChang事件
代码如下:
procedure TForm1.TreeView1Change(Sender: TObject;
Node: TTreeNode);
begin
edit1.Text := Node.Text;
//Node为选定的Node
end;

也可以使用鼠标单击在Onclick事件检测Selected属性,
读这个特性,将返回Treeview的当前所选节点, 如果当前
没有选择节点, 这个属性返回NIL.
通过修改这个属性, 就可以指定要选择的节点.如该节点
处于折叠状态,就自动扩展这个节点.
代码:
procedure TForm1.TreeView1Click(Sender: TObject);
begin

if TreeView1.selected<>nil then

Edit2.text:=treeview1.Selected.Text
else
Edit2.text:='NIL'
end;

end.
 
后退
顶部