Migaro. 技術Tips

                       

ミガロ. 製品の技術情報
IBMiの活用に役立つ情報を掲載!


【Delphi】TSplitterの便利な活用方法

コントロールの間にTSplitterコンポーネントを置くと、
実行時にコントロールのサイズを変更することができます。

 

幅の変更

デフォルト設定では左右のコントロールサイズを変更できます。
ここからはサンプルプロジェクトを作成しながら解説します。

TMemoコンポーネントをフォーム上に配置し、Alignプロパティを alLeft に設定します。
次にTSplitterコンポーネントを配置します。
最後にTPanelコンポーネントを配置し、Alignプロパティを alClient に設定します。

プロジェクトを実行し、MemoとPanelの間にあるSplitter上にマウスを置くと、カーソルの形が変わります。
そのままドラッグすることで領域のサイズが変更されます。

デフォルトの状態ではSplitterを右端や左端に移動させると、MemoやPanelが見えなくなってしまいます。
これを防ぐにはAutoSnapプロパティをFalseにします。

すると、SplitterでMemoやPanelのサイズが変更されますが、
小さい方の幅がMinSizeプロパティ以下に変更されなくなります。

 

高さの変更

続いて、幅ではなく高さを変更する方法をご説明します。
先程のサンプル画面の続きで開発していきます。

右側のPanel1上にTPanelコンポーネントを2つ置き、それぞれのAlignプロパティを次のように設定します。
その後TDBGridコンポーネントを置き、Alignプロパティを次のように設定します。

コンポーネントAlignプロパティ備考
Panel2alTop見やすくするため色を変える
Panle3alBottom見やすくするため色を変える
DBGrid1alClient

 

次にPanel1を選択し、
(デザイン画面では先ほど配置したコンポーネントが上にあるため、
 左側のオブジェクトインスペクタまたは構造ペインから選択します。)
ツールパレット上のTSplitterをダブルクリックしてフォーム上に配置します。

 

SplitterのAlignプロパティを alTop に設定すると、横方向から縦方向に切り替わります。
Cursorプロパティ(マウスを当てた時のカーソル)も自動的にcrVSplitに設定されます。

 

プロジェクトを実行し、PanelとDBGridの間にあるSplitter上にマウスを置くとカーソルの形が変わります。
そのままドラッグすることで領域のサイズが変更されます。

 

Panel1上に同様にしてもうひとつSplitterコンポーネントを置くこともできます。
その場合はフォーム最下部のPanel3とDBGridの間に位置するように、Alignプロパティを alBottom に設定します。

 

 

(旧Tips Delphi/400 入門 Tips28「Splitterの使用方法」より)