8

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;

(私はそれを後方と前方の両方に割り当てようとしました;それは同じことをします。)

しかし、これはまだ機能しません。メッセージボックスは、毎回100ではなく7でポップアップ表示されます。何かが一貫して順序を変更していますが、それは私のコードではありません。

これはなぜですか、それを修正することは可能ですか?

これは私のA2コンピューティングプロジェクト用です

4

3 に答える 3

25

TabOrder連続しています。最初のコントロールには がTabOrderあり0ます。次はTabOrderof1などです。隙間を空けることはできません。

プログラムで割り当てることもできますがTabOrder、個人的には GUI を使用するのが最も簡単だと思います。フォームまたはコンテナー コントロールを右クリックし、[タブ オーダー] メニュー項目を選択します。次に、次のようなダイアログが表示されます。

ここに画像の説明を入力

矢印ボタンを使用して並べ替えたり、アイテムをドラッグして並べ替えたりできます。私の見解ではかなりうまく機能しますが、他のコントロール (パネル、タブシートなど) を含むコントロールには独自のタブ オーダーがあることを覚えておく必要があります。このようなコントロールの場合、そのコントロールを選択して右クリックし、そのコンテナーの子のタブ オーダーを変更する必要があります。

于 2012-01-16T14:27:10.403 に答える
15

If I did understand you well, CnPack can help in design time.

Below you can see one feature. CnPack can show you the Tab Orders as you put the components in form. This can help when you have many edits, buttons or panels.
CnPack Display TabOrders in Designing Mode

Another feature is the button "Auto Set Tab Orders in the Form", that set the Tab Orders using the position of each controls to define it's Tab Order. See below the same form after pressed the button.

I find them extremely helping when designing big forms. Another option would be GExperts Tab Order screen that have the same "order by position" feature: enter image description here

于 2012-01-16T18:17:58.117 に答える
3

タブ オーダーを設定する方法は、タブ オーダーが必要な順序で各コンポーネントを選択し、コントロールをクリップボードに切り取り ( CTRL-X)、再度貼り付け ( CTRL-V) ます。

于 2012-01-17T01:44:32.030 に答える