AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
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.