这种按钮是怎样实现的?

lichp 2001-04-26 09:32:00
怎么样实现点按钮的部分区域(比如说右下角),弹出菜单,而点其他区域执行其他操作!就像FOXMAIL的接受按钮一样?
...全文
126 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jjdelphi 2001-05-12
  • 打赏
  • 举报
回复
长见识
lichp 2001-05-06
  • 打赏
  • 举报
回复
OK!谢谢了
weenyboy 2001-05-06
  • 打赏
  • 举报
回复
procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Rect:TRect;
begin
if (X>Button1.Width -20) and (Y>Button1.height-20) then
begin
Rect:=Button1.BoundsRect;
MapWindowPoints(Handle,0,Rect,2);
PopupMenu1.Popup(Rect.Left+X,Rect.Top+Y);
end
else
ShowMessage('click');
end;
hjkou 2001-05-06
  • 打赏
  • 举报
回复
在onMouseUp事件中检查鼠标的X,Y位置
lichp 2001-05-06
  • 打赏
  • 举报
回复
咦,怎么没有人来回答?真的很难吗?
lichp 2001-05-02
  • 打赏
  • 举报
回复
误会了,不是那样的。
*****
*****
*****
****+
就像上图一样,整个是一个按钮,点击*区域时就和一般的按钮点击一样。但点击+区域则弹出一个POPMENU,如何实现,还望指教!
sundayboys 2001-04-26
  • 打赏
  • 举报
回复
另外的方法是:
1.在窗体上放一个coolbar控件
2.在coolbar上面放一个toolbar,设置其ShowCapitions属性为true,flat为true,然后新建一个按钮toolbtn1
3.放入一个popupmenu控件popupmenu1,设置其items为file1和exit1
4.设置toolbtn1的dorpdownmenu为popupmenu1,style为btsdropdown
sundayboys 2001-04-26
  • 打赏
  • 举报
回复
是啊,按ChipHead(ChipHead)方法就可以了
lichp 2001-04-26
  • 打赏
  • 举报
回复
是接收邮件那个按钮:)
ChipHead 2001-04-26
  • 打赏
  • 举报
回复
在onMouseUp事件中检查鼠标的X,Y位置,如果是在特定范围则弹出菜单,否则执行其他操作。另外,不要响应onClick事件,否则会引起其他操作被执行两次。

5,388

社区成员

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

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