我的TTabSheet上的每个TPageControl上都有一个TToolBar。每个工具栏都有一个TToolButton,应该响应相同的键盘快捷键。如何提供热键,以便为当前页面调用右键?

在第一个选项卡上,Ctrl + T应该使某些事情发生,但是切换到第二个选项卡时,Ctrl + T应该使其他事情发生。

显示或隐藏选项卡时,这是时候在TActionList.StateasNormal之间切换asSuspended吗?

最佳答案

如果只想让Ctrl + T在TabSheets上的活动PageControl之间切换,则创建一个具有Ctrl + T快捷键的Action,然后根据需要在页面之间切换:

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;

09-25 20:18