


 
 
 
 
 
 
 |
Delphi2010 スプリッター(Splitter) 2010/09/08 |
前回は[Additional]内の「CheckListBox」(チェックリストボックス)について見ましたので、今回は同じく[Additional]内の「Splitter」(スプリッター)について見てみます。スプリッターは Delphi6 にもあります。テスト5の画面は一杯になってしまいましたので、テスト6として新規作成しています。
スプリッターは、それ単独で使うものではなく、例えばパネルなどのような Alignプロパティを持つようなコンポーネントと一緒に利用し、そのコンポーネントのサイズを実行時に変更できるようにするものです。例えば、パネルを配置してその Alignプロパティを「alLeft」(左合わせ)にします。この状態で一旦保存・コンパイル(再構築)・実行してみて下さい。Panel1はマウスで大きさを変更する事は出来ません。

↓ 実行

次にスプリッターを配置します。1つ目なので Nameプロパティは「Splitter1」となります。スプリッターの Alignプロパティはデフォルトで「alLeft」になっています。フォーム上で先にパネル Panel1 を配置してそれを先に「alLeft」にしていますから、早いもの勝ちで パネル Panel1 が一番左側になります。スプリッターは2番目ですので、その次の左側になります。この順番は大事になってきます。
これを保存・コンパイル(再構築)・実行してみます。

↓
マウスをスプリッターの上に移動すると
マウス形状が変わります

↓
マウス左ボタンを押しながら移動します
(ドラッグします)

↓
マウス左ボタンを離します

パネル Panel1 の大きさが変わりました
実行時の状態ですので、プログラミング時の画面デザインがその状態に変わる訳ではありません。プログラム終了時などにレジストリやファイル等に Panel1.Width の値を保存するようにしておき、プログラム開始時にその内容を参照して Panel1.Width にその値を入れるようにすれば、前回状態を記録再生する事が出来るようになります。
パネルのAlignプロパティを「alLeft」にしましたのでスプリッターのAlignプロパティも「alLeft」にしましたが、パネルが「alTop」であれば、スプリッターも「alTop」にします。
それでは<オブジェクトインスペクタ>を少し見ていきます。
まずは、AutoSnapプロパティと MinSizeプロパティ。AutoSnapプロパティを True(デフォルト)にすると、上記の例の場合、パネルの大きさを MinSize値(デフォルト30)にまで小さくすると自動的にパネルの大きさを 0 にします。また、AutoSnapプロパティを False にすると、パネルの大きさは最小 MinSize値までとなり、それ以上小さくする事は出来なくなります。
ですので、パネルの大きさを「0」に出来るようにしたいか、必ずある程度の大きさまでは表示させるようにしたいか、を決める事が出来ます。
次に、Beveledプロパティ。デフォルトは False ですが、これを True にすると、スプリッターがベベル状態、つまり立体風の凹んだような見え方にする事が出来ます。
ResizeStyleプロパティは、マウスドラッグしてコンポーネントのサイズを変更しようとする際、どのように見せるのかを指定します。以下はヘルプより。
rsNone | マウスでスプリッタを移動しても効果はない |
rsLine | ユーザーがマウスボタンを現在の位置で離した場合のスプリッタの新しい位置を示す線が描画される。スプリッタは実際には移動せず,コントロールのサイズは変更されない |
rsUpdate | スプリッタの位置揃え基準となるコントロールが現在のマウス位置に基づいてサイズ変更され,スプリッタがその位置まで移動する |
rsPattern | ユーザーが現在の位置でマウスを離すと,作成されるスプリッタの新しい位置を示すパターンが描画される。スプリッタは実際には移動せず,コントロールのサイズは変更されない(ResizeStyle プロパティのデフォルト値) |
上記はあくまでもスプリッターをドラッグする際の見え方の話ですので、コンポーネント(コントロール)が変更されない、という事ではなく、ちゃんと変更されます。
それ以外では、別段、気になるような項目は無いようです。
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
▲2010/09/07
2010/09/08
▼2010/09/09
シェアウェア
Script!World
データベース
|