アクティブなタブページに応じて、ショートカットキーを作成するにはどうすればよいですか?
質問
各 TTabSheet
私の〜の上に TPageControl
があります TToolBar
その上。各ツールバーには TToolButton
それは同じキーボードショートカットに応答するはずです。現在のページに正しいボタンが呼び出されるように、ホットキーを提供するにはどうすればよいですか?
最初のタブシートでは、 Ctrl+t 何かを実現する必要がありますが、2番目のタブに切り替えると、 Ctrl+t 代わりに何か他のことを起こさせるはずです。
これは切り替える時間ですか TActionList.State
の間に asNormal
と asSuspended
タブシートが表示されたり隠されたりするのはいつですか?
解決
お望みならば 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
財産。すべてのコントロールを同じアクションにフックします。
別の方法は、同じショートカットを使用して複数のアクションを持ち、表示または焦点を合わせているものに基づいて更新イベントでそれらを有効または無効にすることです。
所属していません StackOverflow