5

次のようなレイアウトのダイアログがあります。

---------------------------------------------
|                                           |
| CONFIG AREA                               |
| Align: alTop                              |
--------------------------------------------- <-static boundary
|                                           |
| DISPLAY AREA 1                            |
| Align: alTop                              |
============================================= <-TSplitter Align: alTop
|                                           |
| DISPLAY AREA 2                            |
| align: alClient                           |
--------------------------------------------- <-bottom of dialog

ただし、実行時に、スプリッターは表示領域1と表示領域2の間ではなく、構成領域と表示領域1の間に表示され、いくつかの厄介なインターフェイスの問題が発生します。フォームのセットアップ関連のイベントハンドラーには、これらのコンポーネントのVisibleまたはAlignプロパティを変更するものはありません。フォームデザイナでスプリッタが配置されている場所にスプリッタがロードされない理由を誰かが知っていますか?

4

3 に答える 3

11

(再現できません。)スプリッターはトリッキーなものです。私はいつもそれらを配置するためのコードを書きます。この場合、私はします

procedure Form1Show(Sender: TObject);
begin
  Splitter1.Top := DisplayArea2.Top;
end;
于 2011-03-11T18:41:01.147 に答える
7

私は過去に同様の問題を抱えていました。それらは以下によって引き起こされました:

  1. 非表示にする場所を制御します。
  2. 作成順序を制御します。

スプリッターは設定エリアの後、表示エリア1の前に作成されると思います。表示領域1の後に作成する場合は、問題ないはずです。

于 2011-03-11T18:41:55.927 に答える
6

私も過去に同じ問題を抱えていました。TSplitterは、次のように2つのTPanelの間に配置する必要があります。

+---------------------------------------------+
|+-------------------------------------------+|
||                                           ||
|| CONFIG AREA                               ||
|| Align: alTop                              ||
|+-------------------------------------------+|
||                                           ||
|| DISPLAY AREA 1                            ||
|| Align: alClient                           ||
|+-------------------------------------------+|
+---------------------------------------------+
=============================================== <-TSplitter Align: alTop
|                                             |
| DISPLAY AREA 2                              |
| align: alClient                             |
----------------------------------------------- <-bottom of dialog

これで、構成領域と表示領域1がTPanel内にAlign:= alTopで含まれ、構成領域または表示領域1のいずれかがalClientに位置合わせされるはずです。

お役に立てれば

于 2011-03-11T18:53:23.753 に答える