我想制作一个自定义的下拉/弹出菜单,下面有一个很好的阴影。问题是它不是一个标准的菜单,我需要在弹出/下拉菜单中放置一些组件。所以基本上我想要一个下拉式的,我可以做任何我想做的事情,而不仅限于简单的菜单项。我希望它像一个正常的popupmenu问题是我从哪里开始。任何解决方案参考文献?Delphi自定义弹出/下拉菜单,怎么样?
回答
您可以使用TPopupMenu并提供自定义绘图。 这是通过设置
PopupMenu1.OwnerDraw := True;
然后编码OnMeasureItem()
或OnAdvancedDrawItem()
事件,以确定您需要的风俗画的大小来完成。 然后编码OnDrawItem()
事件以根据需要绘制画布。
这听起来像你想要一个看起来像一个弹出菜单,但包含组件的窗体。
更容易,如果你有一个具有一个onmousedown事件事件的组成部分,这样的样本中所示的TPanel,而你只是弹出包含你想弹出控制第二形态:
procedure TForm3.JvPanel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button=mbRight then
FDown := true
else
FDown := false;
end;
procedure TForm3.JvPanel1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
pt:TPoint;
begin
if Button=mbRight then begin
FDown := true;
pt.X := jvPanel1.Left;
pt.Y := jvPanel1.Top+jvPanel1.Height;
pt := ClientToScreen(pt);
Form4.Position := poDesigned;
Form4.BorderStyle := bsNone;
Form4.Left := pt.X;
Form4.Top := pt.Y;
Form4.Show;
end;
end;
处理显示自身的窗体,并将其自身定位为弹出窗口。 第二种形式隐藏自身,也很容易:
procedure TForm4.FormDeactivate(Sender: TObject);
begin
Hide;
end;
alt text http://img718.imageshack.us/img718/8171/formlookslikepopup.png
谢谢,是的,这可能是一个解决方案,但不完全是我需要的,因为我希望它像一个带有阴影的popupmenu。我现在有一个解决方案,它会显示一个带有阴影的面板,并作为popup菜单或多或少地运行。我不知道我是否可以在这里发布完整的解决方案,但我会迟早将它发布在我的博客上。代码大小的任何限制,你可以在这里发布? – 2010-06-12 16:31:54
对我来说,影子可能只是另一个窗口,你用50%的alpha混合显示。 – 2014-04-07 17:09:41
图片不存在... – 2017-09-10 16:41:04
对于什么是值得的,在弹出的下拉阴影方面现在已经解决,解决in this question。
不,它还没有被“固定和解决”,该问题的解决方案并不适用于所有人。这实际上是什么把我带到这里的:-) – 2014-12-20 20:01:00
- 1. 弹出/下拉菜单
- 2. 自定义弹出式菜单
- 3. VIM:自定义omnicomplete弹出式菜单
- 4. HTML中的自定义下拉菜单
- 5. 创建自定义下拉菜单
- 6. Gmail自定义下拉菜单
- 7. 自定义样式的引导下拉菜单
- 8. 从下拉菜单打开弹出框
- 9. 如何在React Native Modal下拉菜单的下拉菜单中自定义FontSize?
- 10. jquery ui菜单自定义弹出式菜单
- 11. CSS下拉菜单样式
- 12. 样式ActionBar下拉菜单
- 13. 自动完成搜索建议下拉弹出式菜单
- 14. 简单的下拉表单/带超链接的菜单。怎么样?
- 15. Codemirror如何自定义自动完成下拉菜单
- 16. TFS构建定义下拉菜单
- 17. Flex 3的自定义组件的定位 - 弹出式菜单
- 18. 定制结账邮编场到自定义下拉菜单
- 19. 自定义皮肤:样式弹出
- 20. Django,自定义标签...怎么样?
- 21. CKeditor自定义样式下拉 - 浮动
- 22. Drupal CKeditor自定义样式下拉
- 23. 如何使用自定义的CSS样式弹出选择菜单
- 24. 我如何自定义菜单这样
- 25. 1Password样式自定义操作菜单
- 26. 下拉菜单淡出
- 27. CSS下拉菜单发出
- 28. 退出Tkinter下拉菜单
- 29. 选择一个值后,在下拉菜单中下拉自定义文本
- 30. 怎么办各CATERGORY下我的输出链路,每个下拉菜单项
嗨罗伯特, 谢谢你的链接,但我不认为我可以把滚动条放在tpopupmenu上,但这是一篇很好的文章。 我想模仿在Vista中的痕迹导航栏的下拉,所以我必须能够添加滚动条或列表视图到下拉面板。 – 2010-06-07 22:54:08
然后TPopupMenu不能使用。我见过的最接近的东西可能是TMS Software提供的名为Advanced Poly Lists的商业产品。虽然我有一个许可证,但我还没有机会使用它,因为它刚刚发布。 http://www.tmssoftware.com/site/advpolylist.asp?s= – 2010-06-07 23:01:15
谢谢罗伯特,我想这是一个相当困难的任务,但我已经取得了一些成功,试图让一个面板像一个弹出/下拉菜单与阴影。很高兴看到我有一些选择,如果这不能像我想要的那样。 – 2010-06-09 20:59:40