DELPHI 我要在一个类似ListBox的控件中对每一行显示的字符都设定一个右键菜单,这个要怎么弄

DELPHI 我要在一个类似ListBox的控件中对每一行显示的字符都设定一个右键菜单,这个要怎么弄,第1张

菜单是否相同?

简单的可以直接 ListBox1 里设置一个 PopupMenu

这样右键就会打开 PopupMenu 控件

复杂一点的话。可以建立一个 TPopupMenu,不指定给 ListBox

然后在 ListBox 鼠标事件中判断是否有选择某一项

var

  p : TPoint;

begin

  if ListBox1ItemIndex <> -1 then

  begin

    // 取得当前鼠标位置

    GetCursorPos(p);

    // d出 PopupMenu1

    PopupMenu1Popup(pX, pY);

  end;

end;

最简单的办法可以在控件的onContextPopup事件中写。

例如可以在button1的onContextPopup事件中写

Button1Click(nil);

这样在button1上点右键的时候就实现了点击左键的效果

复杂一点的可以利用消息机制,获取消息

直接加TMenu属性就行了!或者VCL内部创建TMenu如果你有美化了的第三方控件比如raize那就直接生成那个Menu反正都是从TMenu继承来的(Create) 你想运行时不显示可以用Componentstate=cs我忘了有设计时和运行时的状态! 一般只有运行时显示的,设计时好像被IDE屏蔽了是不能显示菜单的,你看看TMenu的源码吧里面应该有相应的代码控制设计时的行为

以上就是关于DELPHI 我要在一个类似ListBox的控件中对每一行显示的字符都设定一个右键菜单,这个要怎么弄全部的内容,包括:DELPHI 我要在一个类似ListBox的控件中对每一行显示的字符都设定一个右键菜单,这个要怎么弄、delphi如何实现鼠标右键事件变为鼠标左键事件,、delphi 自定义组件中,怎样在VCL模式下,增加右键菜单。而程序编译成功后又不显示。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9783130.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存