Delphi2010 パネル(Panel)
2010/08/27
まず最初に、これまで作業していた「テスト3」の画面が一杯になってきましたので、新しく「テスト4」をフォルダ「004」に新規作成しておきます。前頁で[Standard]内の「RadioGroup」(ラジオグループ)について書きましたので次に、同じく[Standard]内の「Panel」(パネル)について見てみます。
パネルは Delphi6 にもあります。
配置してみます。1つ目なので Nameプロパティは「Panel1」となり、パネルの中央には、それを示す文字が表示されますが、これは
Caption
プロパティで変更することが出来ます(デフォルト内容はNameプロパティと同じ内容となります)。但し、パネル上のその文字をそのまま利用する事はほとんど無いので、Captionプロパティは空状態(ヌル状態)にします。
パネルはグループボックスのように、パネル上にコンポーネントを置く事によって、コンポーネントをグループ化する事が出来ます。が、画面を分割化してレイアウトするような時に利用する事が多いです。または、[Additional]頁の「ScrollBox」を配置した上にパネルを置いて任意箇所にスクロール可能な画面部分を作る、というような場合でしょうか。ですので他のコンポーネントとペアで利用する事が多いです。
<オブジェクトインスペクタ>にて、
Align
プロパティを指定する事によって、パネルをフォームのクライアント領域内の端にぺたっと固定させる事が出来ます。
alTop
上端に合わせる
画面横幅変更時、自動的にリサイズ
alBottom
下端に合わせる
//
alLeft
左端に合わせる
画面縦高さ変更時、自動的にリサイズ
alRight
右端に合わせる
//
alClient
余った領域全て
画面に合わせて自動的にリサイズ
alNone
合わせずフリー状態
自動的にはリサイズされない
例えば、「alTop」=上端に合わせてみます。
フォーム画面を選択した状態でメモを配置します。
メモの
Align
プロパティを「alClient」=余った領域全てにします。
この状態で保存・コンパイル(再構築)して実行してみます。
↓ 試しに画面をリサイズしてみます
例えば、パネル上にラベル、エディット、ボタンなどを配置したりして種々の機能を処理させたりするのに利用出来ます。パネルを複数利用する場合、例えば、Panel1=alTop、Panel2=alLeft、Panel3=alClient とした場合
のようなレイアウトとなりますが、alLeftを優先したいような場合、alLeftのパネルを先に配置しても上記のようになってしまいます。これを避けたい場合は、
のように alLeftのパネル、alClientのパネルを配置し、alClientを指示したPanel2を選択した状態で、パネルを追加し、alTopとして、同様にもう1つパネルを追加し、AlClientとします。Panel2の上に Panel3、Panel4が乗っている状態です。
↓
このような画面レイアウトで Panel3の縦高さを実行時に変えられるようにしたい場合は、Panel2の上に [Additional]頁の[Splitter]を配置し、Splitter1の
Align
プロパティを「alTop」にします。
これを保存・コンパイル(再構築)して実行してみます。
↓
↓
プログラム上でこのPanel3.Height の値をファイルやレジストリに保存し、次回起動時にそれを読み込んで Panel3.Heightに入れるようにすれば、前回の画面状態を保持できるようになります。
それでは、何か新しいものが追加されていないか等を確認するため、<オブジェクトインスペクタ>を見てみます。
まずは、FullRePaintプロパティです。
パネルがサイズ変更されたときに,どのように再描画されるかを判定します。
FullRepaint メソッドは,パネルがサイズ変更されたときにどのように応答するかを制御します。FullRepaint が true の場合,サイズが変更されると,ベベル境界を含むパネル全体が再描画されます。FullRepaint が false の場合,ベベル境界内の領域だけが再描画されます。(ヘルプより)
との事です。画面操作をしていると Windowsが行う画面の再描画シーンがちらりと目に見える事がありますが、重なった部分だけの書き換えが行われる様子というのがこれまでのパターンですが、パネル全体の書き換えが出来るって感じでしょうか?
あとは、エッジ部分の状態を変えることで、表現が変わってきますので(ボタン風とか凹んだ風とか)その辺りはお好みで、という感じかな。
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>
Delphi入門編
>
Delphi2010
▲2010/08/26
2010/08/27
▼2010/08/28
シェアウェア
Script!World
データベース
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.