如何右键单击实现结点选择?
解决方案 »
- 我想请问,要如何保存下面程序所提取的GIF图片啊?
- [高手请教][DBNRTLIB][ConnectionRead (recv()).]一般性网络错误。请检查网络文档。
- Delphi7的TActionManager的xpstyle在windowxp下,拖动的时候经过的按钮的蓝框都没有消失,在慢机上更是突出。
- 我用DriveComboBox控件时,如果选中A:驱动器,而里面没有磁盘,程序会出错,怎样避免呢?解决给分!!!
- 请问 .dfm文件中的 Text = #22823#23478(即text='大家'),如何编程把#22823#23478转化为真实汉字(大家)?
- 字体
- 各位,谁有读写普通收款机的代码?
- 清华紫光怎样?
- 问题讨论:如何进行图片加密?
- 各位各位,帮忙进来看看这个线程的问题!!!!!!!!!!!!!!!!!!!!!
- 如何根据数据多少来确定打印纸张大小?
- 高分求 reportbuilder 的用法
procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight then
if TreeView1.GetNodeAt(X, Y) <> nil then
TreeView1.GetNodeAt(X, Y).Selected := True;
end;
传递MouseDown事件中的值就可以得到按下点的node没有话话获得null,注意两个坐标的原点可能不一样哦。要修改一下值。
MousePos: TPoint; var Handled: Boolean);
var
TVNode:TTreeNode;
begin
TVNode:=Nil;
TVNode:=TreeView1.GetNodeAt(MousePos.x,MousePos.y); // 取鼠标点的地方的TTreeNode
if TVNode=Nil then
Handled:=true // 鼠标点的地方没有TTreeNode,菜单不显
else begin
TreeView1.Selected:=TVNode; // 右键选中TTreeNode
TreeView1Click(Sender);
end;
end;
PopupMenu1.Popup(Mouse.CursorPos.X,Mouse.CursorPos.Y)也行。
procedure TForm1.TreeView1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var pt: TPoint;
begin
pt := Point(X, Y);
pt := TreeView1.ScreenToClient(pt);
if Button = mbRight then
if TreeView1.GetNodeAt(pt.X, pt.Y) <> nil then
TreeView1.GetNodeAt(pt.X, pt.Y).Selected := True;
end;