给ToolButton关联一个PopupMenu, 点击ToolButton就弹出PopupMenu。如果不用鼠标去点击,而是通过给ToolButton发消息让PopupMenu弹出来,可以做到吗?怎么做?
解决方案 »
- 没有什么特别原因,就是想散分。来接分吧!Delphi的兄弟姐妹们。
- 能不能给我一些串口的代码,给你多分!(帮顶也好哦)
- 求救DBGridEh1中根据奇偶行来改变颜色
- 自制editex中怎么调用TEdit的函数 onkeypress
- 大家帮忙分析一下!很简单可是我不懂!中午要交!谢谢
- 短信包月的 兄弟姐妹 顶一下 有分哦
- 获得主板的序列号是这样的吗? 100 给分了,谁能答上我一定给分
- 调查:浙江范围内(杭州、宁波....) 使用DELPHI的编软件的单位多吗? 有谁是浙江里的! 我是一名浙江将毕业的学DELPHI的大学生, 希望大家指点社会道路, 同时调查一下DELPHI的势力
- 请问两台计算机用非屏蔽五类双绞线直接对联的顺序是什么的?
- 为什么for i:=0 to adoquery1.fieldcount -1 do adoquery1['序号']:=adoquery1.RecNO;不能显示各记录行的序号?解决者请进,有30分。
- delphi高手们请进,小弟有个问题困惑了好久
- 请问关于TDBNavigator写数据库的问题
var
pt: TPoint; GetCursorPos(pt);
PopupMenu1.Popup(pt.X,pt.Y);
toolbuttonclick(nil);
定义:
const
MY_MSG = WM_USER+100;procedure MyMsg(var Msg: TMessage);message MY_MSG;
begin
toolbuttonclick(nil);
end;响应:
postmessage(Handle,MY_MSG,0,0);
ToolButton有个Perform方法,可以用来处理消息,就不知道怎么用,我试了几个常用的消息,都没反应。
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ComCtrls, ToolWin, StdCtrls;
const
MY_MSG = WM_USER+100;type
TForm1 = class(TForm)
ToolBar1: TToolBar;
ToolButton1: TToolButton;
PopupMenu1: TPopupMenu;
OK1: TMenuItem;
Button1: TButton;
procedure ToolButton1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure MYMSG(var MSG: TMessage);message MY_MSG;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.MYMSG(var MSG: TMessage);
begin
ToolButton1Click(nil);
end;procedure TForm1.ToolButton1Click(Sender: TObject);
begin
PopupMenu1.Popup(ToolButton1.Left,ToolButton1.Top);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
PostMessage(Handle,MY_MSG,0,0);
end;end.
case NMHdr^.code of
TBN_DROPDOWN:
with PNMToolBar(NMHdr)^ do
{ We can safely assume that a TBN_DROPDOWN message was generated by a
TToolButton and not any TControl. }
if Perform(TB_GETBUTTON, iItem, Longint(@tbButton)) <> 0 then
begin
Button := TToolButton(tbButton.dwData);
if Button <> nil then
Button.CheckMenuDropDown;
end;
............感谢cnzzlp(啊*菠萝)的解答。
ToolBar1.TrackMenu(ToolButton1)
如果要控制消息的话需要向ToolBar发送SYSCOMMAND消息