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

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

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
DelphiXE3 [FMX] 奥行き効果(BevelEffect)2013/11/25
 
前回は [Effects]内の「内部グロー効果」(InnerGlowEffect)について見てみました。次は同じく [Effects]内の「奥行き効果」(BevelEffect)を見てみます。
 
 
[Effects]内
FMX
 
ヘルプより。
TBevelEffect は、表示されるオブジェクトに奥行きがあるように見せる効果を作成するクラスです。
 
TBevelEffect 効果が適用されている表示オブジェクトの形は、木や金属やプラスチックのものの端が本当に傾斜しているように見えます。
 
TBevelEffect は TEffect を実装したものです。詳細は、「TEffect」および「FireMonkey の画像効果」を参照してください。
 
この実装で提供されている TEffect のプロパティの他に、TBevelEffect では、Direction および Size という 2 つの固有のプロパティを提供しています。
 

 
Direction
TBevelEffect が適用されるビジュアル コンポーネント上に落とされる光の方向を(度合で)示します。
Size
傾斜付きの縁のサイズを示します。
Size に 0 が設定された場合、効果は適用されません。
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 の画像効果」の「効果のトリガ」を参照してください。
 
それでは少し試してみます。
ボタン、チェックボックス、ラベル、イメージ(Image)、RoundRect等を配置します。イメージには、BMPファイル、透過付PNGファイルを指定します。背景色が白色だと分かりにくいかもしれないので、Gray色にしておきます。

各コンポーネントにそれぞれ、奥行き効果(BevelEffect)を指定していきます。これは単純に、構造ビューで、BevelEffectを配置したあとドラッグをして、それぞれの子にしていくだけです。

フォーム画面上では、何やらおかしな表示になっています。
トラックバーの変更イベントハンドラを以下のように記述します。
トラックバーのMin・Maxには、0、20、を指定しておきます。
procedure TForm1.TrackBar1Change(Sender: TObject);
var
 i : integer ;
 t : TComponent ;
 v : Single ;
begin
 v := TrackBar1.Value ;
 for i := 1 to 10 do begin
  t := FindComponent('BevelEffect'+IntToStr(i));
  if (t <> nil) then
   TBevelEffect(t).Size := Trunc(v) ;
 end;
end;
保存・コンパイル・実行を行います。

サイズ「0」状態

サイズを大きくしていくと…









 
というわけで、何やらフォーム画面はずっと乱れた状態で、思ったようには全く表示されませんね。パソコン環境で変わるのかもしれませんが、これではちょっと使えません。ヘルプを見ると、本来なら、ボタン化のような事が出来るらしいのですが……
※上記は、Delphi XE3 Update2 での動作結果です。
 
※Delphi XE2 では綺麗に表示される事を確認しています。

※Delphi XE4 Update1 では、綺麗とまでは行かないまでも、そこそこ?の表示は出来ている事を確認しています。

 
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
▲2013/11/24
 2013/11/25
▼2013/11/26
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.