アクティブなタブページに応じて、ショートカットキーを作成するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/6360039

質問

TTabSheet 私の〜の上に TPageControl があります TToolBar その上。各ツールバーには TToolButton それは同じキーボードショートカットに応答するはずです。現在のページに正しいボタンが呼び出されるように、ホットキーを提供するにはどうすればよいですか?

最初のタブシートでは、 Ctrl+t 何かを実現する必要がありますが、2番目のタブに切り替えると、 Ctrl+t 代わりに何か他のことを起こさせるはずです。

これは切り替える時間ですか TActionList.State の間に asNormalasSuspended タブシートが表示されたり隠されたりするのはいつですか?

役に立ちましたか?

解決

お望みならば Ctrl+t 単にアクティブ間をひっくり返すために TabSheets aで PageControl, 、シングルを作成します アクション, 、 とともに Ctrl+t ショートカット、および必要に応じてページ間をひっくり返す:

procedure TForm1.actNextPageExecute(Sender: TObject)
var
   nextPageIndex: Integer;
begin
   nextPageIndex := PageControl1.ActivePageIndex+1;

   if (nextPageIndex > PageControl1.Pages.Count-1) then
       nextPageIndex := 0;

   PageControl1.ActivePageIndex := nextPageIndex;
end;

他のヒント

どの制御が開始されたかに応じて、1つのタクションに異なることをしたい場合は、アクションを見てください ActionComponent 財産。すべてのコントロールを同じアクションにフックします。

別の方法は、同じショートカットを使用して複数のアクションを持ち、表示または焦点を合わせているものに基づいて更新イベントでそれらを有効または無効にすることです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top