在Delphi的treeview应用中出错,右键单击不同的节点弹出不同的弹出菜单
treeview中的父节点和子节点如下:
我的客户
客户1
客户2
我的任务
任务a
任务b
任务bb
任务bc
任务任务bb是任务b的子节点,任务b是我的任务的子节点
代码如下:
procedure TMainForm.TreeView1Click(Sender: TObject);
var
pt1 :TPoint;
selectedNode1:TTreeNode;
begin pt1 := Mouse.CursorPos;
pt1 := TreeView1.ScreenToClient(Mouse.CursorPos);
treeview1.RightClickSelect:=true;
selectedNode1:=TreeView1.GetNodeAt(pt1.X,pt1.Y);
if TreeView1.GetNodeAt(pt1.X,pt1.Y)<>nil then
if (selectedNode1.Level=0)and (selectedNode1.Index=0)and(TreeView1.GetNodeAt(pt1.X,pt1.Y).Text ='我的客户') then
TreeView1.PopupMenu := PopupMenu1
else if (selectedNode1.Level=0)and (selectedNode1.Index=1)and(TreeView1.GetNodeAt(pt1.X,pt1.Y).Text ='我的任务') then
TreeView1.PopupMenu := PopupMenu2
else if (selectedNode1.Level=0)and (selectedNode1.Index=3)and(TreeView1.GetNodeAt(pt1.X,pt1.Y).Text ='我的日志') then
TreeView1.PopupMenu := PopupMenu3;
end;end.
怎么在空白处单击也不行啊,照样出现获得最后焦点的哪个弹出窗口啊
treeview中的父节点和子节点如下:
我的客户
客户1
客户2
我的任务
任务a
任务b
任务bb
任务bc
任务任务bb是任务b的子节点,任务b是我的任务的子节点
代码如下:
procedure TMainForm.TreeView1Click(Sender: TObject);
var
pt1 :TPoint;
selectedNode1:TTreeNode;
begin pt1 := Mouse.CursorPos;
pt1 := TreeView1.ScreenToClient(Mouse.CursorPos);
treeview1.RightClickSelect:=true;
selectedNode1:=TreeView1.GetNodeAt(pt1.X,pt1.Y);
if TreeView1.GetNodeAt(pt1.X,pt1.Y)<>nil then
if (selectedNode1.Level=0)and (selectedNode1.Index=0)and(TreeView1.GetNodeAt(pt1.X,pt1.Y).Text ='我的客户') then
TreeView1.PopupMenu := PopupMenu1
else if (selectedNode1.Level=0)and (selectedNode1.Index=1)and(TreeView1.GetNodeAt(pt1.X,pt1.Y).Text ='我的任务') then
TreeView1.PopupMenu := PopupMenu2
else if (selectedNode1.Level=0)and (selectedNode1.Index=3)and(TreeView1.GetNodeAt(pt1.X,pt1.Y).Text ='我的日志') then
TreeView1.PopupMenu := PopupMenu3;
end;end.
怎么在空白处单击也不行啊,照样出现获得最后焦点的哪个弹出窗口啊
解决方案 »
- 动态创建odbc数据源的问题
- cxdblookupcombobox控件问题
- 做除法如果分母为0怎么办?
- 系统设计中的文件渗漏问题,大家来看看.
- 我在工程文件中uses midasLib单元,将midas打包进服务器端,exe也大了200多K,但运行时为什么还是提示需要midas.dll?应该怎么做才能编译成
- 当2个客户端同时运行的是后出现"name not unique in this context"该怎么处理啊!
- ListView显示大数据量的问题?
- 用什么语言实现两个数据库之间的实时通讯?
- 我用pardoax建的数据表myb,设计字段N1类型为number型,在DBGRID中显示myb中的记录,如何显示N1字段时,能有13.0这样小数点后带0的记录?(
- 菜鸟问题:删除query中的当前记录。
- 对于高人小菜一碟~~请教高人救命!!!!!
- PChar转String
pt1 := Mouse.CursorPos;
pt1 := TreeView1.ScreenToClient(Mouse.CursorPos);
//如果空白,则把PopupMenu 设为 nil,你可以试一下
if TreeView1.GetNodeAt(pt1.X,pt1.Y) = nil then
TreeView1.PopupMenu := nil;