Delphi XE2 アプリケーションがあります。Form1
ホットキーCtrl+ F、およびForm2
があり、ホットキーなしでアクティブです。Ctrlユーザーは+Fを押してホットキーForm2
を処理します。Form1
非アクティブなフォームのアクティビティが表示されるため、これはまったく正しくありません。どうすれば修正できますか?
質問する
1143 次
3 に答える
6
アクションを使用してすべてのショートカット キー処理を実装します。これを行うと、アクション、アクション リスト、アクション マネージャーなどが提供する一元化を使用して、フォームがアクティブかどうかに基づいてすべてのアクションを有効または無効にすることができます。
たとえば、フォームのおよびイベント ハンドラーでアクション リストのState
プロパティを設定することにより、これを行います。OnActivate
OnDeactivate
procedure TMyForm.FormActivate(Sender: TObject);
begin
ActionList.State := asNormal;
end;
procedure TMyForm.FormDeactivate(Sender: TObject);
begin
ActionList.State := asSuspended;
end;
于 2013-03-29T13:44:43.963 に答える
2
アクティブなフォームのチェックをホットキー ハンドラーに追加できます。
if(Screen.ActiveForm <> Self)then Exit;
Form1
これは、イベントハンドラーが (ハンドラー内にある)によって実装されていることを前提としていSelf
ます。
于 2013-03-29T13:15:08.253 に答える