Delphi Pop Up-Menü Sichtbarkeit
Frage
Gibt es eine Möglichkeit in Delphi 7 um herauszufinden, ob ein Pop-up-Menü sichtbar (auf dem Bildschirm angezeigt) ist oder nicht, da es eine Eigenschaft Visible fehlt.
Lösung
Sie können Ihre eigene Flagge machen, indem sie es in dem OnPopup Ereignisse einstellen. Das Problem ist, zu wissen, wenn die popupmenu geschlossen ist. Peter Below hat eine Lösung dafür.
Aber meine ich fragen, warum Sie dies wünschen würden? Vielleicht gibt es einen besseren Weg, um das zugrunde liegende Problem zu lösen.
Andere Tipps
Dies scheint ein wenig einfacher (I verwendet Delphi 2007) zu sein:
In Ihrem WM_CONTEXTMENU Nachrichtenhandler, bevor die geerbte Handler aufrufen, ist das Popup-Menü zu angezeigt werden, können Sie Ihre Flagge setzen. Nach geerbt anrufen, hat das Popup-Menü geschlossen, Ihre Flagge zurückgesetzt.
procedure TForm1.WMContextMenu(var Message: TWMContextMenu);
begin
FPopupActive := True;
try
OutputDebugString(PChar(Format('popup opening', [])));
inherited;
finally
FPopupActive := False;
OutputDebugString(PChar(Format('popup closed', [])));
end;
end;