|
DelphiXE4 [FMX]パネル(Panel) 2015/04/06 |
前回は[Standard]内の「ポップアップボックス(PopupBox)」について記述しましたので、今回は、同じく[Standard]内の「パネル(Panel)」について記述します。
【Delphi2010の記事はこちら】
【DelphiXE3[VCLアプリケーション]の記事はこちら】
【DelphiXE3[FMXアプリケーション]の記事はこちら】
XE4(FMX)
FMX.StdCtrls.TPanel |
XE3(FMX)
FMX.Controls.TPanel |
| |
| |
(ヘルプより)
Align
このコントロールの整列オプション(上、左、クライアントなど)を示します。 |
alNone
コントロールは置かれた場所から移動しません。これがデフォルト値です。位置やサイズの自動的な変更は行われません。アンカーは、[akLeft,akTop]に設定されます。
alTop
コントロールは親の上端に移動して固定され、幅が親の幅いっぱいになるようサイズ変更されます。コントロールの高さは変わりません。一番端に固定された別のコントロールによって親領域の一部が既にふさがれている場合には、このコントロールは親の幅の残りの部分に合わせてサイズ変更されます。アンカーは、[akLeft,akTop,akRight] に設定されます。
alBottom
コントロールは親の下端に移動して固定され、幅が親の幅いっぱいになるようサイズ変更されます。コントロールの高さは変わりません。一番端に固定された別のコントロールによって親領域の一部が既にふさがれている場合には、このコントロールは親の幅の残りの部分に合わせてサイズ変更されます。アンカーは、[akLeft,akBottom,akRight] に設定されます。
alLeft
コントロールは親の左端に移動して固定され、高さが親の高さいっぱいになるようサイズ変更されます。コントロールの幅は変わりません。端に固定された別のコントロールによって親領域の一部が既にふさがれている場合には、このコントロールは親の高さの残りの部分に合わせてサイズ変更されます。アンカーは、[akLeft,akTop,akBottom] に設定されます。
alRight
コントロールは親の右端に移動して固定され、高さが親の高さいっぱいになるようサイズ変更されます。コントロールの幅は変わりません。端に固定された別のコントロールによって親領域の一部が既にふさがれている場合には、このコントロールは親の高さの残りの部分に合わせてサイズ変更されます。アンカーは、[akRight,akTop,akBottom] に設定されます。
alMostTop
コントロールは親の上端に移動して固定され、一番上に設定され、幅が親の幅いっぱいになるようサイズ変更されます。コントロールの高さは変わりません。アンカーは、[akLeft,akTop,akRight] に設定されます。
alMostBottom
コントロールは親の下端に移動して固定され、一番下に設定され、幅が親の幅いっぱいになるようサイズ変更されます。コントロールの高さは変わりません。アンカーは、[akLeft,akRight,akBottom] に設定されます。
alMostLeft
コントロールは親の左端に移動して固定され、一番左に設定され、高さが親の高さいっぱいになるようサイズ変更されます。コントロールの幅は変わりません。一番端に固定された別のコントロールによって親領域の一部が既にふさがれている場合には、このコントロールは親の高さの残りの部分に合わせてサイズ変更されます。アンカーは、[akLeft,akTop,akBottom] に設定されます。
alMostRight
コントロールは親の右端に移動して固定され、一番右に設定され、高さが親の高さいっぱいになるようサイズ変更されます。コントロールの幅は変わりません。一番端に固定された別のコントロールによって親領域の一部が既にふさがれている場合には、このコントロールは親の高さの残りの部分に合わせてサイズ変更されます。アンカーは、[akTop,akRight,akBottom] に設定されます。
alClient
コントロールは親のクライアント領域いっぱいになるようサイズ変更されます。端に固定された別のコントロールによって親領域の一部が既にふさがれている場合には、このコントロールは親領域の残りの部分に合わせてサイズ変更されます。アンカーは、[akLeft,akTop,akRight,akBottom] に設定されます。
alContents
コントロールは親の境界内全体に合わせてサイズ変更され、重ねられます。アンカーは、[akLeft,akTop,akRight,akBottom] に設定されます。
alCenter
コントロールは親の領域の中央に移動します。コントロールのサイズは変わりません。端に固定された別のコントロールによって親領域の一部が既にふさがれている場合には、このコントロールは親領域の残りの部分の中央に移動します。コントロールは親に対してアンカー設定(固定)されません。
alVertCenter
コントロールは親のクライアント領域内で縦方向の中央に移動し、幅が親の幅いっぱいになるようサイズ変更されます。コントロールの高さは変わりません。端に固定された別のコントロールによって親領域の一部が既にふさがれている場合には、このコントロールは親の幅の残りの部分に合わせてサイズ変更されます。アンカーは、[akLeft,akRight] に設定されます。
alHorzCenter
コントロールは親のクライアント領域内で横方向の中央に移動し、高さが親の高さいっぱいになるようサイズ変更されます。コントロールの幅は変わりません。端に固定された別のコントロールによって親領域の一部が既にふさがれている場合には、このコントロールは親の高さの残りの部分に合わせてサイズ変更されます。アンカーは、[akTop,akBottom] に設定されます。
alHorizontal
コントロールは親の高さいっぱいになるようサイズ変更されます。コントロールの幅は変わりません。端に固定された別のコントロールによって親領域の一部が既にふさがれている場合には、このコントロールは親の高さの残りの部分に合わせてサイズ変更されます。アンカーは、[akLeft,akRight] に設定されます。
alVertical
コントロールは親の幅いっぱいになるようサイズ変更されます。コントロールの高さは変わりません。端に固定された別のコントロールによって親領域の一部が既にふさがれている場合には、このコントロールは親の幅の残りの部分に合わせてサイズ変更されます。アンカーは、[akTop,akRight] に設定されます。
alScale
コントロールは、コンテナのサイズが変わるとそれに合わせてサイズ変更や移動を行って、相対的な位置とサイズを保ちます。アンカーは、[akLeft,akTop,akRight,akBottom] に設定されます。
alFit
コントロールは、縦横比を保ったまま、親領域いっぱいになるようサイズ変更されます。コントロールは親の領域の中央に移動します。アンカーは、[akLeft,akTop,akRight,akBottom] に設定されます。
alFitLeft
コントロールは、縦横比を保ったまま、親領域いっぱいになるようサイズ変更されます。コントロールは親の左端に移動して固定されます。アンカーは、[akLeft,akTop,akRight,akBottom] に設定されます。
alFitRight
コントロールは、縦横比を保ったまま、親領域いっぱいになるようサイズ変更されます。コントロールは親の右端に移動して固定されます。アンカーは、[akLeft,akTop,akRight,akBottom] に設定されます。 |
ClipChildren
現在のコントロールにクリップした子があるかどうかを示します。
ClipChildren は、コントロールにクリップした子があるなら True、そうでなければ False となります。 |
GroupBoxと同様、ClipChildrenをTrueにしないと、パネル上のコンポーネントはクリッピングされません。VCLの場合は自動的にクリッピングされましたので注意です。
また、ラジオボタンは GroupBox同様、GroupName を指定しないとパネル上のものと、そうでないものは同一画面上として処理されます。これも VCLとは異なりますので注意です。 |
ユニットが変わっており、グループボックス同様、オブジェクトインスペクタでのプロパティに TabOrderプロパティが追加されています。しかしながらこの TabOrderプロパティは グループボックス同様、オブジェクトインスペクタで数値を変更しても、[Tab]順序は変わってくれませんのでほとんど意味はありません。
パネルは、グループボックス同様、パネル内に配置した複数のコントロールをまとめて扱うためにも利用できますが、よく利用するパターンとしてはやはり、Alignプロパティで上下左右のどれかにフィットさせ、パネル内は固定領域のように扱い、それ以外の部分は Alignプロパティを AlClientに指定した別コントロール(メモやイメージやスクロールボックスやグリッド等)を配置してリサイズ対応の画面としてレイアウトするようなケースでしょうか。
パネルを複数組み合わせて利用する場合もあります。
ここでの Panel2 の Alignプロパティは「alLeft」ですが、こういった画面をレイアウトする際に、ひょっとすると状況によっては
という風になってしまうかもしれない? という事を回避するために
という風に、Alignプロパティを「AlClient」にしたパネル Panel2 を配置して、その中に、更に1つ又は複数のパネルや他コントロールを配置する、という安全策を取る場合もあるかもしれません。VCLの時にはこういうことはよくありました。ただ、FireMonkey(FMX)では、コントロールの配置順序が VCLよりも固定化している感じで、意図的にこういった事をしなくても良いケースは多いような気がします。
なお、スプリッターを付ける事で、上下左右にフィットさせたパネルの大きさを変更可能なようにする事が出来ます。上図の場合、実行時、Panel3 の横幅を変更できるようになります。
↓
使い方も色々だと思いますが、例えば、Panel2上に配置したラベル等の文字がおさまりきらずに切れてしまう場合、スプリッターでリサイズする事によって、利用者が自由に文字を見える状態に変更することが出来る等。Panel2 の Width値を設定ファイルに保存・読み出しする事によって、アプリケーションを終了しても、前回状態で見えるようにする事が可能です。
下図のように画面レイアウトしてみました。
パネルは、グループボックス同様、フォーカスを持ちません。
指定無し |
Air.Style |
Amakrits.Style |
AquaGraphite.style |
Blend.Style |
Dark.style |
GoldenGraphite.Style |
Light.Style |
RubyGraphite.style |
Transparent.Style |
MacOSX アプリケーションでも動作OKです。
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
>DelphiXE4
△TOP
▲2015/04/05
2015/04/06
▼2015/04/07
シェアウェア
Script!World
データベース
|