如何限定菜单的长度?

pipimei 2001-01-10 02:47:00
当一个菜单的项目太多时,系统将自动将菜单的长度设置为屏幕的高度,并出现上下的滚动条,我的问题是:
如何人为地限制菜单的长度和位置??能提供思路也行。
...全文
109 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pipimei 2001-01-12
  • 打赏
  • 举报
回复
另外,kingron,我不想把菜单分为两个部分。
pipimei 2001-01-12
  • 打赏
  • 举报
回复
谢谢诸位。我再把意思说清楚点:
我想要动态的创建这样的一个弹出菜单:
在指定的位置弹出,并且当菜单项目过多时由程序来控制它显示的项目数,最上端和最下端为滚动箭头。

不知道大家试过没有,当菜单项目超过一定的数目,菜单弹出的位置不再由程序控制(这里是关键!),而是最上端在屏幕的顶部,最下端在屏幕的底部。
gameboy999 2001-01-12
  • 打赏
  • 举报
回复
不知你做过动态菜单没有,菜单弹出的位置当然是getcursorpos得来的了,菜单弹出的高度,
自己计算嘛,如果想上端顶屏幕的顶部,下端顶屏幕的底部,那就在顶端弹出菜单呗,当然两端得 自己特殊处理了,即ownerdraw了。
Kingron 2001-01-12
  • 打赏
  • 举报
回复
popupmenu有个onpopup事件,可以在那里面进行设置,对菜单进行判断,如果项目个数多于指定的个数的时候就进行指定的操作,例如设置菜单项的break属性,这样就不会出现箭头而是在旁边另外弹出一个菜单。
pipimei 2001-01-11
  • 打赏
  • 举报
回复
可能我没有讲清楚,我的意思是:
当动态地创建一个TpopupMenu的菜单项目时(比如导入IE的收藏夹),如果菜单的项目太多(比如100个),这时候,菜单弹出的位置不再由程序控制,而是上端顶屏幕的顶部,下端顶屏幕的底部,也就是说,菜单的长度为屏幕的高度。同时,windows将自动地出现上下的滚动箭头。
我的问题是:
在这种情况下,怎样控制菜单弹出的位置和高度?
wzs 2001-01-10
  • 打赏
  • 举报
回复
如果限制菜单长度的话很容易只要:

if 你指定的菜单长度(即个数)<增加菜单时计算菜单总个数 then
你要做的一些事
showsky 2001-01-10
  • 打赏
  • 举报
回复
你不能先限制窗口的高度和宽度吗,菜单当然会受到窗口的影响。
我的回答也很糊糊,“如何人为地限制菜单的长度和位置??”是什么意思,能再说清楚一些吗?

5,388

社区成员

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

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