2011-06-15 36 views
3

我的TPageControl上的每個TTabSheet上都有一個TToolBar就可以了。每個工具欄都有一個TToolButton,它們應該響應相同的鍵盤快捷鍵。如何提供熱鍵以便爲當前頁面調用右鍵?如何根據活動標籤頁使快捷鍵做不同的事情?

在第一個選項卡,按Ctrl +Ť應該使事情發生,但在切換到第二個選項卡,按Ctrl +Ť應該做別的東西,而不是發生。

當標籤頁顯示或隱藏時,是否可以在asNormalasSuspended之間切換TActionList.State

+4

對不起,但我不太關注你。 TabSheets沒有工具按鈕。工具欄上有工具按鈕。你能更具體地問你在問什麼? – 2011-06-15 15:30:57

+0

我習慣性地將工具按鈕動作關聯到鍵盤快捷鍵的方式是使用動作併爲動作指定一個快捷方式。那是你想要做的嗎? – 2011-06-15 18:29:51

+0

夥計們,它完成了! – maxfax 2011-06-15 22:19:39

回答

1

如果你想按Ctrl + 牛逼只是爲了活躍TabSheets之間在PageControl翻轉,然後創建一個單一的行動,具有按Ctrl + 牛逼快捷方式,並根據需要在頁面之間翻轉:

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

不,我寫道,我需要ToolButtons(ToolBar)的shortscuts。每個TabSheet都有一個工具欄。 TabSheet1和TabSheet2上的ToolButton可以具有相同的快捷鍵(Ctrl + T)。 – maxfax 2011-06-15 23:31:18

+0

ActionToolBars和ActionManager似乎只是需要根據哪個標籤顯示來管理動作快捷方式的答案 – Despatcher 2011-06-16 16:09:27

0

如果你想要一個TAction做取決於什麼不同的東西控制啓動它,只是看在行動的​​公關operty。將所有控件掛鉤到同一個動作。

另一種方法是使用相同的快捷方式執行多個操作,並根據可見或聚焦的內容在Update事件中啓用或禁用它們。

相關問題