2012-01-16 130 views
6

德爾福(Embarcadero®Delphi®2010版本14.0)中我的表單上的標籤順序不正確,這意味着標籤鍵跳到窗體中看似隨機的項目。德爾福標籤順序

但是,當我在Delphi中更改它時,它會按照相同的錯誤順序爲我重新排列它們!

所以,我決定以編程方式爲它們分配:

procedure FixDelphiTabOrder; 
begin 
    Form2.ButtonClear.TabOrder := 2000; 
    Form2.ButtonExport.TabOrder := 1900; 
    Form2.ButtonNew.TabOrder := 1800; 
    Form2.MaxFreq.TabOrder := 1700; 
    Form2.MinFreq.TabOrder := 1600; 
    Form2.Summary.TabOrder := 1500; 
    Form2.Plot6dB.TabOrder := 1400; 
    Form2.Plot3dB.TabOrder := 1300; 
    Form2.Use_dBs.TabOrder := 1200; 
    Form2.PlotPoints.TabOrder := 1100; 
    Form2.PlotPhase.TabOrder := 1000; 
    Form2.Prop8Value.TabOrder := 900; 
    Form2.Prop7Value.TabOrder := 800; 
    Form2.Prop6Value.TabOrder := 700; 
    Form2.Prop5Value.TabOrder := 600; 
    Form2.Prop4Value.TabOrder := 500; 
    Form2.Prop3Value.TabOrder := 400; 
    Form2.Prop2Value.TabOrder := 300; 
    Form2.Prop1Value.TabOrder := 200; 
    Form2.FilterType.TabOrder := 100; 
    ShowMessage(IntToStr(Form2.Prop1Value.TabOrder)); 
end; 

(我嘗試都向後和向前分配給它,它做同樣的事情。)

但是,這仍然無法正常工作。消息框每次彈出7個而不是100個。有些東西一直在改變順序,但它不是我的代碼。

這是爲什麼,它是可以修復它?

這是我的A2計算項目

+1

@David考慮完成。對不起 - 落後了。 – 2012-01-16 14:49:06

回答

19

TabOrder是連續的。第一個控件的TabOrder0。接下來有TabOrder1等等。你不能留下任何空白。

雖然您可以通過編程方式指定TabOrder,但是我個人發現使用GUI最容易實現。右鍵單擊表單或者確實在容器控件上,然後選擇Tab Order菜單項。然後你會看到這樣的對話:

enter image description here

您可以使用箭頭按鈕重新排序,或者你可以簡單地將項目重新排序。在我看來,它工作得很好,但您必須記住包含其他控件(例如面板,標籤頁等)的控件具有其自己的Tab順序。對於這樣的控件,您需要選擇該控件,右鍵單擊,然後修改該容器的子項的Tab鍵順序。

+0

BBC基礎太多。我想這意味着很多重新排序,如果我想添加新的東西。 – 2012-01-16 14:28:05

+0

啊,是的,BBC微。我有一個模型B.「REN 10,10」似乎響起了鐘聲! – 2012-01-16 14:30:44

+0

如果您未使用組件的Tag屬性,則可以將特定的「TabOrder」值分配給Tag屬性,然後創建一個過程以基於標記值以編程方式設置Tab順序。然後,您可以輕鬆地插入帶有中間標籤的新組件,並讓Tab鍵順序過程自動進行分類。 – 2012-01-16 14:35:41

11

如果我的確很瞭解你,CnPack可以幫助設計時間。

下面您可以看到一個功能。當您將組件放在窗體中時,CnPack可以向您顯示Tab Orders。這可以幫助你有很多編輯,按鈕或面板。
CnPack Display TabOrders in Designing Mode

另一個特點是按鈕「的形式自動設置選項卡訂單」,即使用每個控件的位置來定義它的Tab順序設置選項卡訂單。按下按鈕後,請看下面的相同表格。 "Auto Set Tab Orders in the Form" button

我發現它們在設計大型表格時非常有幫助。 另一個選擇是具有相同的「按位置順序」功能GExperts Tab順序屏幕: enter image description here

+0

+1非常好的答案炫耀兩個非常有用和強大的工具 – 2012-01-16 19:42:35

1

我設置Tab鍵順序是你想要的選項卡順序的順序選擇每個組件的方式,那麼切開控制到剪貼板(CTRL-X),然後粘貼(CTRL-V)他們回來。

+0

使用Cnpack或GExperts你可以更容易地做到這一點.. – 2012-01-17 16:27:26

+0

@FabricioAraujo - 實際上,少數控件是一種相當快速的方法。我會用它!如果你有很多我確實推薦CNPack – Ampere 2014-09-17 10:21:32