DelphiXE4 [FMX]グループボックス(GroupBox)
2015/04/04
前回は[Standard]内の「ラジオボタン(RadioButton)」について記述しましたので、今回は、同じく[Standard]内の「グループボックス(GroupBox)」について記述します。
【Delphi2010の記事はこちら】
【DelphiXE3[VCLアプリケーション]の記事はこちら】
【DelphiXE3[FMXアプリケーション]の記事はこちら】
XE4(FMX)
FMX.StdCtrls.TGroupBox
XE3(FMX)
FMX.Controls.TGroupBox
(ヘルプより)
ClipChildren
現在のコントロールにクリップした子があるかどうかを示します。
ClipChildrenは、コントロールにクリップした子があるならTrue、そうでなければFalseとなります。
この
ClipChildren
プロパティはデフォルトで False となっていますが、False状態の場合、グループボックス内に配置する各コントロールはクリップされませんので、グループボックスの外側にも配置出来てしまいます。
従来は自動的にクリップされていましたので、従来と同様にしたい場合は意識してこれをTrueに変える必要があります。
RotationAngle
コントロールが X 軸に対して回転されるときの量(角度)を示します。
正の角度は、時計周りの回転を意味します。反時計回りの場合、負の値を使用します。
回転の中心を設定するには、RotationCenterを使用します。
RotationCenter
コントロールのピボット点の位置を示します。
回転の中心点の座標は、0〜1までの範囲の数です。座標(0,0)の点はコントロールの左上隅に相当し、座標(1,1)の点はコントロールの右下隅に相当します。回転のデフォルトの中心点は、(0.5,0.5)です。
[0,0]〜[1,1]の範囲外の値は、削減されます。
Scale
コントロールのスケールを示します。
Scale座標を設定すると、各軸上のスケールを示すことができます。
スケールの初期値は、各軸上の1です。
回転・スケールは、グループボックス全体に掛かりますので、グループボックス内の各コンポーネントのプロパティ内容を変える必要はありません。角度=0、スケール=1、のままで大丈夫です。
ユニットが変わっており、オブジェクトインスペクタでは、TabOrder プロパティが追加されています。
TabOrder
コントロールが、親のタブ順において、どこに位置するかを示します。
TabOrder は、ユーザーが〔Tab〕キーを押したときに、辿られる子コントロール群の中での順番です。 TabOrder 値が 0 のコントロールは、そのフォームが最初に表示されたときにフォーカスが当たっているコントロールです。
最初のタブ順は、コントロールがフォームに追加された順になります。 最初にフォームに追加されたコントロールは、TabOrder 値が 0 に、次が 1、3 番目が 2 に...となります。 この動作は、TabOrder プロパティを変更することによって変えることができます。
各コントロールは、その親の内部で、一意のタブ順が付けられています。
親コントロール内に収められているコントロール数より大きな値を TabOrder プロパティに指定した場合、そのコントロールはタブ順の末尾に移動されます。この場合、コントロールは TabOrder プロパティに割り当てられた値ではなく、コントロールがタブ順の末尾になったと想定した数が指定されます。
TabOrderプロパティは、フォーカスが移動される順の番号ですね。
以下のようにレイアウトしてみました。
スタイルブックは「Air.Style」を指定しています。初期状態だとフォーカスが見えませんのでこのようにしています。実行し、[Tab]キーを押すと
↓[空白]キー
↓[Tab]キー
↓[Tab]キー
↓[Tab]キー
↓[空白]キー
↓[Tab]キー
↓[Tab]キー
↓[Tab]キー
となります。
グループボックスでラジオボタンを括った(ラジオボタンをグループボックスの中に配置した)としても、ラジオボタン状態がグループ化される事はありません。ラジオボタン状態をグループ化する場合は、ラジオボタンの GroupName プロパティを指定する必要があります。
ただ、画面レイアウトとして、グループボックスがあった方が良い場合も多いですし、画面デザインをする際に、コントロールを移動するときにまとめて作業出来ますから、効果的に活用すれば良いと思われます。
グループボックスはフォーカスを持ちませんので、グループボックス内のコントロールにフォーカスが移動されます。
さて、グループボックス GroupBox1 の TabOrder プロパティを「3」から「1」に変えてみます。RadioButton2 の TabOrder プロパティを「2」、RadioButton3 の TabOrder プロパティを「3」にしてみます。これで[Tab]順序は
RadioButton1 → GroupBox1 → RadioButton2 → RadioButton3
となる想定ですが、
実際には、[Tab]順序は変化せず、
RadioButton1 → RadioButton2 → RadioButton3 → GroupBox1
の状態のままです。
残念ながら、TabOrder プロパティの操作は完全に無意味ですね。
このグループボックスだけでなく、他のコンポーネントも同様です。
MacOSXアプリケーションでも同様です。
[Tab]順序を後にしたいコントロールをカット&ペーストすれば、[Tab]順序を変更することが出来ますが、TabOrderプロパティを指定するのは諦めた方が良さそうですね。
以下、
RadioButton1 はチェックなし
RadioButton2 はチェックあり
RadioButton3 にフォーカスがある状態で
RadioButton4 の上にマウスを移動している状態、です。
指定無し
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/03
2015/04/04
▼2015/04/05
シェアウェア
Script!World
データベース
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.