質問
Delphi 7には、Visibleプロパティがないため、ポップアップメニューが表示されている(画面に表示されている)かどうかを確認する方法があります。
解決
OnPopupイベントでフラグを設定することにより、独自のフラグを作成できます。問題は、ポップアップメニューがいつ閉じられるかを知ることです。 以下のピーター解決策があります。
しかし、私はなぜあなたがこれを望むのか尋ねますか?根本的な問題を解決するより良い方法があるかもしれません。
他のヒント
これは少し単純に思えます(Delphi 2007を使用しました):
WM_CONTEXTMENUメッセージハンドラーで、継承されたハンドラーを呼び出す前に、ポップアップメニューが表示される直前に、フラグを設定できます。継承を呼び出した後、ポップアップメニューが閉じられ、フラグをリセットします。
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;
所属していません StackOverflow