一个关于树型菜单操作的问题,大家给我想想用什么方法可以实现。。。。。。。。。。

binghe_yyh2001 2004-11-03 10:36:05
如何操作树型菜单的时候,点击节点不触发事件,而是在点击条目的时候才触发事件,就像CHM帮助一样(注:点击任何条目我都要触发事件),不知有什么方法或者有什么控件能实现啊
...全文
139 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
budded 2004-11-03
  • 打赏
  • 举报
回复
procedure TfrmTables.tvTablesMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
vTreeNode: TTreeNode;
begin
vTreeNode := tvTables.GetNodeAt(X, Y);
if Assigned(vTreeNode) and (Button = mbLeft) then
if (htOnLabel in tvTables.GetHitTestInfoAt(X, Y)) then
vTreeNode.Selected := True
else vTreeNode.Selected := False;
end;

// 這招肯定能解決問題
jinjazz 2004-11-03
  • 打赏
  • 举报
回复
先判断它是不是叶子就可以了

procedure TForm1.TreeView1Click(Sender: TObject);
begin
if treeview1.Selected<>nil then
if not treeview1.Selected.HasChildren
begin
//some code
end;
end;
miky 2004-11-03
  • 打赏
  • 举报
回复
你可以给节点赋上不同的属性啊,根据他判断是不是目录。

TreeView1.Selected.Data 可以指向一个结构,你可以在里面保存各种信息。
brallow 2004-11-03
  • 打赏
  • 举报
回复
不知道你说的触发事件指的是什么事件呢?这些事件是由vcl实现的,一定会触发,只是你在合适的“地方”处理(有可能是抛弃)这些事件罢了。
xufenglong 2004-11-03
  • 打赏
  • 举报
回复
if (Tree.Selected.Index <>-1 ) then
Begin
//
end;
binghe_yyh2001 2004-11-03
  • 打赏
  • 举报
回复

5,939

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧