procedure TForm1.TreeView1DblClick(Sender: TObject);
var
pt:Tpoint;
node:TTreeNode;
begin
GetCursorPos(pt);
ScreenToClient(pt);
node:=TreeView1.GetNodeAt(pt.X,pt.Y);
if node=nil then exit;
caption:=node.Text;
end;这样的代码老是获取不到
var
pt:Tpoint;
node:TTreeNode;
begin
GetCursorPos(pt);
ScreenToClient(pt);
node:=TreeView1.GetNodeAt(pt.X,pt.Y);
if node=nil then exit;
caption:=node.Text;
end;这样的代码老是获取不到
procedure TForm1.TreeView1DblClick(Sender: TObject);
var
pt:Tpoint;
node:TTreeNode;
begin
GetCursorPos(pt);
pt := TreeView1.ScreenToClient(pt);
node:=TreeView1.GetNodeAt(pt.X,pt.Y);
if node=nil then exit;
caption:=node.Text;
end;注意这句 pt := TreeView1.ScreenToClient(pt);
如果不用TreeView1.ScreenToClient 就相当于self.ScreenToClient(Form1.ScreenToClient),坐标转换就会出错
//改成不是TreeView1.ScreenToClient(pt)
//就是TreeView1.ClientToScreen(pt)
//很搞,我就不研究了。
procedure TForm1.TreeView1DblClick(Sender: TObject);
var
pt:Tpoint;
node:TTreeNode;
begin
GetCursorPos(pt);
pt := TreeView1.ScreenToClient(pt);
node:=TreeView1.GetNodeAt(pt.X,pt.Y);
if node=nil then exit;
caption:=node.Text;
end;node.selected.text 是获取你当前节点的Caption
procedure TForm1.TreeView1DblClick(Sender: TObject);
var
pt:Tpoint;
node:TTreeNode;
begin
GetCursorPos(pt);
pt := TreeView1.ScreenToClient(pt);
node:=TreeView1.GetNodeAt(pt.X,pt.Y);
if node=nil then exit;
caption:=node.Text;
end;
Node.Selected.text是获取你选中的节点的Caption
node:=TreeView1.GetNodeAt(pt.X,pt.Y);这个我是试过不行,我加了Treeview1的
var
pt :TPoint;
begin
pt := Mouse.CursorPos;
pt := tv***.ScreenToClient(Mouse.CursorPos);
if tv***.GetNodeAt(pt.X,pt.Y)<>nil then
begin
//双击允许执行节点切换
tv***Change(Sender,tv***.GetNodeAt(pt.X,pt.Y));
end;
end;我自己用的代码
procedure TForm1.TreeView1DblClick(Sender: TObject);
var
pt:Tpoint;
node:TTreeNode;
begin
GetCursorPos(pt);
pt := TreeView1.ScreenToClient(pt);
node:=TreeView1.GetNodeAt(pt.X,pt.Y);
if node=nil then exit;
caption:=node.Text;
end;
var
pt:TPoint;
node:TTreeNode;
begin
GetCursorPos(pt);
TreeView1.ScreenToClient(pt);
node:=TreeView1.GetNodeAt(pt.X,pt.Y);
if node=nil then exit;
caption:=node.Text;
end;
我测试就是看不到效果,用TreeView1.Selected是肯定可以达到效果的
if not (Sender is TTreeView) then Exit;
Node:= TTreeView(Sender).Selected;
//可对合法性判断
//如
if Node = nil then exit;