如何在delphi中关闭自定义PopupMenu?

rol*_*oll 4 delphi popup

我有一个项目CoolTrayIcon,并PopupMenu设有残疾人AutoPopup财产.我想定位PopupMenu并为用户显示它.位置正常,但如果用户点击或按ESC按钮,菜单不会关闭.我没有找到任何Active可以帮助的属性,如果使用菜单.

在这里我定位菜单:

procedure TForm1.CoolTrayIcon1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  pnt: TPoint; yy:integer;
begin

GetCursorPos(pnt);
yy:=pnt.y; yy:=yy-500;

if (Button=mbRight) then begin
    PopupMenu1.Popup(pnt.X, yy);
end;

end;
Run Code Online (Sandbox Code Playgroud)

如果需要,我怎么能设法关闭菜单?

Dav*_*nan 8

这是一个已知的问题,在这里讨论:

PRB:通知图标的菜单无法正常工作

您需要将调用包装Popup()如下:

SetForegroundWindow(Handle);
PopupMenu1.Popup(pnt.X, yy);
PostMessage(Handle, WM_NULL, 0, 0);
Run Code Online (Sandbox Code Playgroud)

在此代码中,Handle是与通知图标关联的表单的窗口句柄.