如何得知弹出菜单已经关闭??

tengxing 2003-04-22 10:03:22
弹出菜单弹出可以知道,但要怎么知道它是否关闭了???
...全文
46 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
charles2118 2003-07-28
  • 打赏
  • 举报
回复
给菜单编个号码
Function NotClose(num:Integer):Boolean;
begin
try
Result:= false;
if (curFrameNum=num) then
exit;

Result := True;
if (curFrameNum=0) then
exit;

curFrame.Free;
curFrameNum:=0;
except
on e:Exception do
if Application.MessageBox('发生异常,是否显示异常信息?','错误', mb_IconWarning + mb_YesNo) = mrYes then
Application.MessageBox( pchar(E.message),'错误信息', mb_IconWarning + mb_Ok);
end;
end;
xiaoyuer0851 2003-07-27
  • 打赏
  • 举报
回复
厉害 ,学习ing ^^^^^^
span_space 2003-07-27
  • 打赏
  • 举报
回复
up
baguli 2003-07-26
  • 打赏
  • 举报
回复
另外,改正一下:最好将Popupped改为Public属性,因为在Delphi IDE里面,Popupped是没有意义的。
baguli 2003-07-26
  • 打赏
  • 举报
回复
办法还是有的,我试了一下:
简单创建一个新的组件TPopupMenuPro,下面是一些关键代码:
type TPopupMenuPro = class(TPopupMenu)
FPopupped: Boolean;
public
constructor Create(AOwner: TComponent); override;
procedure Popup(X, Y: Integer); override;
property
Popupped: Boolean read FPopupped;
end;

implementation

constructor TPopupMenuPro.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FPopupped := False;
end;

procedure TPopupMenuPro.Popup(X, Y: Integer);
begin
FPopupped := True;
inherited Popup(X, Y);
FPopupped := False;
end;

end.

然后,注册这个组件,使用TPopupMenuPro代替TPopupMenu,检测其Popupped属性即可知道是否弹出菜单
bottom 2003-07-26
  • 打赏
  • 举报
回复
BORLAND 没有提供这种事件和属性
BORLAND一般以微软的制作为标准,在MSDN中无此讲法
也很少人做菜单收回的事件的需要!
tengxing 2003-07-26
  • 打赏
  • 举报
回复
不是吧,这么久了。就没人会??
overtime 2003-07-26
  • 打赏
  • 举报
回复
用assign试试
flash107 2003-07-26
  • 打赏
  • 举报
回复
用findWindow()查找一下,该窗口是否存在,若不存在,侧关闭
FrameSniper 2003-07-26
  • 打赏
  • 举报
回复
牛.......
newyu 2003-04-23
  • 打赏
  • 举报
回复
这个嘛,我也不知道,
你加个条件判断,是不是show或者visible=true
之类的应该可以吧

5,385

社区成员

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

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