質問

ラザロス0.9.30.2を走っています。

TMAGECONTROLがあるTFORMを持っています。TPageControl内には一連のTTABシートがあります。実行時にTTABSheetsの順序は設計時刻とは異なります(写真を参照)。

画像の入力ここにある

設計時の順序は、少なくともフォームが初めて表示されたときに、実行時に見たいものです。実行時に注文が変更されるのはなぜですか、これを制御する方法はありますか?

役に立ちましたか?

解決

@tlamaは、これがマルチラインビューのときにWindowsタブコントロールが動作する方法に関連していることを正しいです。遵守している動作は、複数行タブの場合の選択方法に関連しています。どのタブが選択されているタブが選択されているかを示すビジュアルキューが常に下の行に表示されます。

制約が、選択したタブを変更するときに、コントロールは単にタブの行を並べ替える必要があります。それはユーザーが驚くほど混乱しています。良いUIデザインには、UI要素がこのような位置を変えることはありません。

明らかに起こっていることは、フォームが最初に表示されたときに実行時に再配置が起こっていること、およびこれが設計時間配置とは異なる配置をもたらすものであることです。ユーザーが選択するだけで行を任意の順序で配置できることを考えると、行が存在する順序を気にする必要があります。

フォームが最初に表示されているときに特定の配置を強制的に設定している場合は、このようなコードをFormのOnCreateハンドラに追加できます。

PageControl1.ActivePage := TabSheet9;
PageControl1.ActivePage := TabSheet5;
PageControl1.ActivePage := TabSheet1;
.

UI設計のベストプラクティスは、マルチラインタブコントロールを避けることであり、そのようにしてあなたのUIを再設計しようとするように勧めます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top