2012-01-16 127 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