【问题标题】:Delphi tab order德尔福标签顺序
【发布时间】:2012-01-16 14:24:24
【问题描述】:

我在 Delphi(Embarcadero® Delphi® 2010 版本 14.0)中的表单上的 Tab 键顺序不正确,这意味着 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 计算项目

【问题讨论】:

  • @David 考虑完成。抱歉 - 落后了。

标签: forms delphi tab-ordering


【解决方案1】:

TabOrder 是连续的。第一个控件有TabOrder0。接下来有TabOrder1 等等。不能留下任何空隙。

虽然您可以通过编程方式分配 TabOrder,但我个人认为使用 GUI 来执行此操作最容易。右键单击表单,或者实际上是容器控件,然后选择 Tab Order 菜单项。然后你会看到这样的对话框:

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

【讨论】:

  • BBC Basic 内容太多。如果我想添加一些新东西,我想这意味着需要大量重新订购。
  • 啊,是的,BBC Micro。我有一个模型 B。REN 10, 10 似乎敲响了警钟!
  • 如果您不使用组件的 Tag 属性,那么您可以将临时“TabOrder”值分配给 Tag 属性,然后创建一个过程以编程方式根据标记值。然后,您可以轻松地插入带有中间标签的新组件,并让标签顺序过程自动对其进行排序。
  • 谢谢。这修复了它,现在我的程序更有用了。
  • @DavidHeffernan,我期待在那里看到TOrchButton
【解决方案2】:

如果我能很好地理解您,CnPack 可以在设计时提供帮助。

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

另一个功能是“在表单中自动设置 Tab 键顺序”按钮,它使用每个控件的位置来设置 Tab 键顺序来定义它的 Tab 键顺序。按下按钮后,请参阅下面的相同表格。

我发现它们在设计大型表单时非常有帮助。 另一个选项是GExperts Tab Order 屏幕,它具有相同的“按位置排序”功能:

【讨论】:

  • +1 非常好的答案,展示了两个非常有用和强大的工具
【解决方案3】:

我设置 Tab 键顺序的方式是按照你想要的 Tab 键顺序选择每个组件,然后将控件剪切到剪贴板 (CTRL-X),然后粘贴 (CTRL -V) 再次返回。

【讨论】:

  • @FabricioAraujo - 实际上,对于少数控件来说是一种相当快捷的方法。我会用的!如果你有很多我确实推荐 CNPack
猜你喜欢
  • 2014-07-08
  • 1970-01-01
  • 1970-01-01
  • 2011-08-22
  • 2012-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-02
相关资源
最近更新 更多