Порядок вкладок Delphi - PullRequest
       34

Порядок вкладок Delphi

8 голосов
/ 16 января 2012

Порядок табуляции в моей форме в Delphi (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

Ответы [ 3 ]

23 голосов
/ 16 января 2012

TabOrder является смежным.Первый элемент управления имеет TabOrder из 0.Следующий имеет TabOrder из 1 и так далее.Вы не можете оставлять пробелы.

Хотя вы можете назначить TabOrder программно, лично я считаю, что для этого проще всего использовать графический интерфейс.Щелкните правой кнопкой мыши форму или элемент управления контейнером и выберите пункт меню Tab Order .Затем вы увидите диалоговое окно, подобное этому:

enter image description here

Вы можете использовать кнопки со стрелками для изменения порядка или просто перетаскивать элементы для изменения порядка.На мой взгляд, он работает достаточно хорошо, но вы должны помнить, что элементы управления, которые содержат другие элементы управления (например, панели, вкладки и т. Д.), Имеют свой собственный порядок вкладок.Для такого элемента управления вам нужно выбрать этот элемент управления, щелкнуть правой кнопкой мыши и затем изменить порядок вкладок для дочерних элементов этого контейнера.

13 голосов
/ 16 января 2012

Если я вас правильно понял, CnPack может помочь во время разработки.

Ниже вы можете увидеть одну функцию. CnPack может показать вам порядок вкладок, когда вы помещаете компоненты в форму. Это может помочь, когда у вас много правок, кнопок или панелей.
CnPack Display TabOrders in Designing Mode

Еще одной функцией является кнопка «Автоматически устанавливать порядок вкладок в форме», которая устанавливает порядок вкладок, используя положение каждого элемента управления для определения его порядка вкладок. Смотрите ниже ту же форму после нажатия кнопки.

Я считаю их чрезвычайно полезными при проектировании больших форм. Другой вариант будет GExperts Экран порядка вкладок, который имеет такую ​​же функцию «порядок по позиции»: enter image description here

1 голос
/ 17 января 2012

Я устанавливаю порядок вкладок, выбирая каждый компонент в том порядке, в котором вы хотите порядок вкладок, затем обрезаете элементы управления в буфере обмена ( CTRL-X ), затем вставьте ( CTRL-V ) их снова.

...