|
DelphiXE3 [FMX] 影の効果(ShadowEffect)2013/11/21 |
前回は [Colors]内のカラーリストボックス(ColorListBox)について見てみました。これで[Colors]内については終了となります。今回から [Effects]内について見ていきます。[Effects]内の非ビジュアルコンポーネントは、色々な2Dオブジェクトに対して様々な効果を施す機能を提供するという事のようです。
それではまず、最初の「影の効果」(ShadowEffect)から見ていきます。
[Effects]内
FMX | |
ヘルプより。
TShadowEffect は、表示されるオブジェクトに影の効果を作成するためのクラスです。
TShadowEffect は TEffect を実装したものです。詳細は、「TEffect」および「FireMonkey の画像効果」を参照してください。
TEffect で提供されているプロパティの他に、TShadowEffect には、Direction、Distance、Opacity、ShadowColor、Softness という 5 つの固有のプロパティがあります。 |
| |
|
Direction
Distance
影と、TShadowEffect が適用されるビジュアル オブジェクトとの間の距離を示します。 |
Opacity
影の不透明度を示します。
Opacity は System.Single 値で、0 から 1 の範囲の値を取ります。 |
ShadowColor
Softness
影に適用されるぼかしの量を示します。
Softness は System.Single 値で、0 から 9 の範囲の値を取ります。 |
|
Trigger
トリガ条件を保有するプロパティ。
それぞれのトリガ条件は、プロパティ名、等号記号、トリガ値で構成されます。すべての組み込みトリガはブール値です。したがって、それらの値は True または False でなければなりません。 例:
IsMouseOver=true;IsPressed=false
トリガの値を設定は、 オブジェクト インスペクタで最も簡単に行えます。
トリガ | 説明 |
IsDragOver | コントロールがドラッグされている(マウス ボタンがクリックされ、かつ押されたままになっている)際に、効果を発生させます。 |
IsFocused | コントロール上にフォーカスがある際に、効果を発生させます。 |
IsMouseOver | マウスがコントロールの上を通過した際に、効果を発生させます(HitTest が True に設定されている必要があります)。 |
IsVisible | コントロールが画面上に表示されている際に、効果を発生させます。 |
その他の組み込みトリガには、以下のものがあります。
・IsActive(TCustomForm)
・IsChecked (TMenuItem)
・IsOpen (TEffect)
・IsPressed (TCustomButton)
・IsSelected(MenuItem、TTabItem、TListBoxItem、TTreeViewItem)
効果トリガに関するさらなる情報については、「FireMonkey の画像効果」の「効果のトリガ」を参照してください。 |
|
ヘルプによれば、「(TImage オブジェクトを使って)フォーム上に配置された(背景が透明の).png 画像と、TRectangle オブジェクト」に対して効果を与える事が出来る様子です。
それでは少し試してみます。
ボタン、チェックボックス、ラベル、イメージ(Image)4つ、RoundRect、Textを配置します。イメージには、BMPファイル、JPEGファイル、透過付PNGファイル、透過付GIFファイル、を指定します。
各コンポーネントにそれぞれ、影の効果(ShadowEffect)を指定していきます。これは単純に、構造ビューで、ShadowEffectを配置したあとドラッグをして、それぞれの子にしていくだけです。
保存・コンパイル・実行を行います。
コンポーネントによって、効果の掛かり方は違うかもしれませんが、おおよそ想像したように効果付けされている感じがします。BMP、JPEGファイルの場合には、イメージの境界エッジに対して効果が掛けられていますが、透過を指定したPNG/GIFファイルの場合には、透過を指定していない部分の影が透過を指定した部分に効果を及ぼしている様子ですので、なかなか面白いのではないかと思います。
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
▲2013/11/20
2013/11/21
▼2013/11/22
シェアウェア
Script!World
データベース
|