当前位置:  开发笔记 > 前端 > 正文

如何使用下拉菜单创建按钮?

如何解决《如何使用下拉菜单创建按钮?》经验,为你挑选了3个好方法。

有没有办法显示IE/Firefox后退按钮样式,下拉菜单按钮?



1> Jim McKeeth..:

我假设你的意思是一个按钮,点击时会下拉菜单.

您也可以手动编写单击按钮以下拉TPopupMenu.

示例:在表单上删除任何带有TClickEvent(可能是TButton)和TPopupMenu的内容.添加一些菜单项.然后添加以下OnClick事件处理程序:

procedure TForm86.Button1Click(Sender: TObject);
var
  button: TControl;
  lowerLeft: TPoint;
begin
  if Sender is TControl then
  begin
    button := TControl(Sender);
    lowerLeft := Point(button.Left, button.Top + Button.Height);
    lowerLeft := ClientToScreen(lowerLeft);
    PopupMenu1.Popup(lowerLeft.X, lowerLeft.Y);
  end;
end;

而且中提琴!就像魔术一样.如果您打算重用它,可以将它全部包装在组件中. 也许甚至可以在线销售.

注意:如果您想要延迟,则在另一个方法中提取该代码,然后设置一个计时器OnClick并转动OnMouseLeave的计时器.然后,如果计时器触发,您可以调用提取的方法.不知道如何在键盘上点击它.我不知道Firefox等是否也支持.



2> 小智..:

Jim的答案很棒,但起初并不适合我.ClientToScreen使用Form86的方法,只有当按钮直接在窗体上时才能正确.它应该是调用按钮的ClientToScreen方法,如下所示:

procedure TForm86.Button1Click(Sender: TObject);
var
  button: TControl;
  lowerLeft: TPoint;
begin
  if Sender is TControl then
  begin
    button := TControl(Sender);
    lowerLeft := Point(0, button.Height);
    lowerLeft := button.ClientToScreen(lowerLeft);
    PopupMenu1.Popup(lowerLeft.X, lowerLeft.Y);
  end;
end;

无论按钮在哪里,这都有效.



3> Kluge..:

当然.在页面上放置一个工具栏.右键单击工具栏,添加一个按钮.将按钮的样式设置为tbsDropDown.在页面上放置一个PopupMenu.双击PopupMenu以定义菜单项.然后,返回到您创建的按钮并将其DropdownMenu属性设置为指向您刚刚创建的PopupMenu.

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有