3

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

最初のタブシートでは、Ctrl+Tは何かを起こすはずですが、2番目のタブに切り替えると、Ctrl+Tは代わりに何か他のことを起こすはずです。

TActionList.Stateこれは、タブシートの表示または非表示を切り替えるときですasNormalか?asSuspended

4

2 に答える 2

1

Ctrl+T単純にでアクティブを切り替えTabSheetsたい場合は、+ショートカットをPageControl使用して単一のアクションを作成し、必要に応じてページを切り替えます。CtrlT

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;
于 2011-06-15T23:25:29.930 に答える
0

1つのTActionに、それを開始したコントロールに応じて異なる処理を実行させたい場合は、アクションのActionComponentプロパティを確認してください。すべてのコントロールを同じアクションにフックします。

別の方法は、同じショートカットで複数のアクションを実行し、表示またはフォーカスされているものに基づいて、Updateイベントでそれらを有効または無効にすることです。

于 2011-06-16T21:31:48.323 に答える