Tho*_*s O 8 forms delphi tab-ordering
我在德尔福形式(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;
Run Code Online (Sandbox Code Playgroud)
(我尝试向后和向前分配它;它做同样的事情.)
但这仍然行不通.每次弹出的消息框为7而不是100.有些东西一直在改变顺序,但这不是我的代码.
为什么会这样,是否可以修复它?
这是我的A2计算项目
Dav*_*nan 23
TabOrder是连续的.首先控制了TabOrder的0.接下来的具有TabOrder的1等等.你不能留下任何空白.
虽然您可以通过TabOrder编程方式进行分配,但我个人觉得最简单的方法是使用GUI来完成.右键单击表单,或者确实在容器控件上,然后选择Tab Order菜单项.然后你会看到一个这样的对话框:

您可以使用箭头按钮重新排序,也可以直接拖动项目进行重新排序.它在我的视图中工作得相当好,但您必须记住包含其他控件(例如面板,标签页等)的控件具有自己的Tab键顺序.对于此类控件,您需要选择该控件,右键单击,然后修改该容器子项的Tab键顺序.