Forms Delphi选项卡顺序

Forms Delphi选项卡顺序,forms,delphi,tab-ordering,Forms,Delphi,Tab Ordering,Delphi(Embarcadero®Delphi®2010 14.0版)中我的表单上的选项卡顺序不正确,这意味着tab键会跳转到表单中看似随机的项目 然而,当我在Delphi中更改它时,它会以同样错误的顺序为我重新排列它们 因此,我决定以编程方式分配它们: procedure FixDelphiTabOrder; begin Form2.ButtonClear.TabOrder := 2000; Form2.ButtonExport.TabOrder := 1900; Form2.

Delphi(Embarcadero®Delphi®2010 14.0版)中我的表单上的选项卡顺序不正确,这意味着tab键会跳转到表单中看似随机的项目

然而,当我在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计算项目的

TabOrder
是连续的。第一个控件具有
0
TabOrder
。接下来是
1
TabOrder
,依此类推。你不能留下任何空隙

虽然您可以通过编程方式分配
TabOrder
,但我个人认为使用GUI这样做最简单。右键单击表单或容器控件,然后选择Tab Order菜单项。然后您将看到如下对话框:


您可以使用箭头按钮重新排序,也可以简单地拖动项目重新排序。在我看来,它工作得相当好,但您必须记住,包含其他控件(例如面板、选项卡等)的控件有自己的选项卡顺序。对于这样一个控件,您需要选择该控件,右键单击,然后修改该容器子级的选项卡顺序。

如果我理解得很好,可以在设计时提供帮助

下面您可以看到一个功能。CnPack可以在您将组件放入表单时显示选项卡顺序。当您有许多编辑、按钮或面板时,这会有所帮助。

另一个功能是“在表单中自动设置选项卡顺序”按钮,该按钮使用每个控件的位置来设置选项卡顺序,以定义其选项卡顺序。按下按钮后,请参见下表。

我发现它们在设计大表单时非常有用。 另一个选项是具有相同“按位置排序”功能的选项卡顺序屏幕:

我设置选项卡顺序的方法是,按照您希望的选项卡顺序选择每个组件,然后将控件剪切到剪贴板(CTRL-X),然后再次粘贴(CTRL-V)。

太多了。我想这意味着如果我想在中添加一些新内容,就需要大量的重新订购。啊,是的,BBC微新闻。我有一辆B型车。
REN 10,10
好像响了一个铃铛!如果未使用组件的Tag属性,则可以将特定的“TabOrder”值指定给Tag属性,然后创建一个过程,以编程方式根据标记值设置tab顺序。然后,您可以轻松地插入带有中间标记的新组件,并让tab order过程自动进行排序。谢谢。这是固定的,现在我的程序更有用。“DavidHeffernan,我期待看到<代码> TrkButks<代码>。”戴维认为已经完成了。抱歉,我落后了。+1非常好的回答,展示了两个非常有用和强大的答案tools@FabricioAraujo-实际上,对于一些控件,这是一种非常快速的方法。我会用它!如果你有很多,我推荐你