4

Delphi 7には、Visibleプロパティがないため、ポップアップメニューが表示されている(画面に表示されている)かどうかを確認する方法はありますか。

4

2 に答える 2

4

OnPopupイベントで設定することにより、独自のフラグを作成できます。問題は、ポップアップメニューがいつ閉じられるかを知ることです。ペーターベロウはそのための解決策を持っています。

しかし、私はあなたがこれを望む理由を尋ねますか?根本的な問題を解決するためのより良い方法があるかもしれません。

于 2008-09-26T07:48:37.273 に答える
2

これは少し単純なようです (私は 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;
于 2008-09-26T12:35:38.603 に答える