DelphiXE4 [FMX]エクスパンダー(Expander)
2015/04/14
前回は[Standard]内の「小スクロールバー(SmallScrollBar)」について記述しましたので、今回は、同じく[Standard]内の「エクスパンダー(Expander)」について記述します。Delphi 2010、VCLアプリケーションに、これそのもの、というのはありません。
【DelphiXE3[FMXアプリケーション]の記事はこちら】
XE4(FMX)
FMX.StdCtrls.TExpander
XE3(FMX)
FMX.Controls.TExpander
ユニットが変わっており、オブジェクトインスペクタでは、TabOrder プロパティが追加されています。
(ヘルプより)
IsExpanded
展開コントロールのコントロールが展開されているかどうかを示します。
IsExpandedプロパティをTrueに設定すると、展開コントロールのコンテンツを展開し、含まれているすべての項目を表示させることができます。展開コントロールを折りたたむには、IsExpandedをFalseにします。
IsExpandedプロパティのデフォルト値は、Trueです。
次のコードスニペットのように、展開コントロールはプログラムで展開および折りたたむことができます:
var
Expander1:TExpander1;
begin
{expandtheexpandercontrol}
Expander1.IsExpanded:=True;
{collapsetheexpandercontrol}
Expander1.IsExpanded:=False;
end;
ShowCheck
展開コントロールが右上端にチェックボックスを表示するかどうかを示します。
ShowCheckプロパティをTrueに設定すると、展開コントロールオブジェクトの右上端に、チェックボックスが表示されます。ShowCheckをFalseに設定すると、チェックボックスが非表示になります。
IsChecked
展開コントロールのチェックボックスが選択されているかどうかを示します。
IsCheckedプロパティをTrueに設定すると、展開コントロールのチェックボックスを選択状態にすることができます。展開コントロールのチェックボックスをクリア状態にするには、IsCheckedをFalseにします。
IsCheckedプロパティのデフォルト値は、Trueです。
OnCheckChange
この展開コントロールのチェックボックスが状態を変更するたびに発生します。
OnCheckChangeイベントを記述すると、この展開コントロールにアタッチされているチェックボックスが、その状態をTrueからFalse、もしくはその逆に変更するたびに、何を発生させるかを指定することができます。
TabOrder
フォーカスが当たっているコントロールです。
最初のタブ順は、コントロールがフォームに追加された順になります。最初にフォームに追加されたコントロールは、TabOrder値が0に、次が1、3番目が2に...となります。この動作は、TabOrderプロパティを変更することによって変えることができます。
各コントロールは、その親の内部で、一意のタブ順が付けられています。
親コントロール内に収められているコントロール数より大きな値をTabOrderプロパティに指定した場合、そのコントロールはタブ順の末尾に移動されます。この場合、コントロールはTabOrderプロパティに割り当てられた値ではなく、コントロールがタブ順の末尾になったと想定した数が指定されます。
とありますが、このエクスパンダーはフォーカスを持ちませんし、TabOrderプロパティ値を指定しても、[Tab]順序は変化しません。新しく追加されたプロパティですが、グループボックス等と同様、全くの無意味です。
表示領域を拡大/縮小する可能性のある複数のグラフィカルコントロールを保持するためのグラフィカルコントロールを表します。
TExpanderコンポーネントを使用するのは、内容の表示/非表示のために拡大/縮小できる領域にグラフィカルコンポーネントを配置する手段をユーザーに提供する必要がある場合です。
というわけで、下図のように配置してみます。
保存・コンパイル・実行してみます。
↓
↓
というわけで、普通に配置する分には、折り畳むと余白が出来るだけですから、下に別のコンポーネントを配置しないと余り意味はないですね。そうなるとデザイン時の作業がややこしくなるので、普通こういう事はしない、という事でしょうか。
となれば当然のごとく、Alignプロパティに alNone以外の値を指定する、というのが前提となっていくのでしょう。下図は Alignプロパティに alTop を指定した場合です。Panel1のAlignプロパティは alClient にしています。
保存・コンパイル・実行してみます。
↓
↓
↓
それでは少しだけイベントの確認を。
エクスパンダーの ShowCheckプロパティを True にしておきます。
procedure TForm1.Expander1CheckChange(Sender: TObject);
begin
ShowMessage('展開1チェック操作');
end;
procedure TForm1.Expander1Click(Sender: TObject);
begin
ShowMessage('展開1クリック');
end;
保存・コンパイル・実行をしてみます。
↓クリック
中に配置したコントロール以外の部分、どこをクリックしても反応します。
展開・折り畳みをしたときのイベント、というのは無い様子?
リサイズイベントは反応しますが画面サイズを変えた時にも
反応しますのでリサイズイベントは少し使いにくいです。
↓チェックをオフに
チェックがオフになった後にイベントハンドラが実行
チェックオフにすると内部が操作不可状態に
以下、スタイルブックを指定した画面状態です。
「Air.Style」を使用した場合、クリックイベントが動かない様子です。
指定無し
Air.Style
Amakrits.Style
AquaGraphite.style
Blend.Style
Dark.style
GoldenGraphite.Style
Light.Style
RubyGraphite.style
Transparent.Style
MacOSX でも動作することが確認出来ます。
指定無し
Air.Style
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>
Delphi入門編
>
Delphi2010
>
DelphiXE3
>DelphiXE4
△TOP
▲2015/04/13
2015/04/14
▼2015/04/15
シェアウェア
Script!World
データベース
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.