FMX.Forms.TCustomPopupForm.AniPosition

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

property AniPosition: Single read FAniPosition;

C++

__property float AniPosition = {read=FAniPosition};

プロパティ

種類 可視性 ソース ユニット
property public
FMX.Forms.pas
FMX.Forms.hpp
FMX.Forms TCustomPopupForm


説明

01 の間の値を返す読み取り専用プロパティ。AniPosition は、OnAniTimer イベント ハンドラで使用することができます。

AniPosition 値は、カスタム アニメーション実行の時間 AniDuration の間、(現在のポップアップ フォームが開く間に)0 から 1 へ変わり、(閉じる間に)0から1に変わります。

AniPosition は、OnAniTimer イベント ハンドラにおいて、アニメーションされるプロパティの中間値で、パラメータとして使用することができます。たとえば、AniPosition を使用すると、カスタム アニメーションの間、中間位置や中間不透明度を計算することができます。オープニング アニメーションの、AniPosition = 0 がスタート時点に相当し、AniPosition = 1 が終了に相当します。

たとえば、以下のサンプルでは、フォームの Width(フォーム Size のコンポーネント)は、ポップアップ フォームが現れる間、そしてまた逆にそのフォームが閉じる間に、0AniPosition = 0 の場合)から 200AniPosition = 1 の場合)の間で変わります:

...
procedure TForm1.AniTimerProc(Sender: TObject);
begin
  if Sender is TCustomPopupForm then
  begin
//    You can use AniPosition whether to define Opacity or Size
//    TCustomPopupForm(Sender).ContentControl.Opacity := TCustomPopupForm(Sender).AniPosition;
    TCustomPopupForm(Sender).Size := TSize.Create(Round(200 * TCustomPopupForm(Sender).AniPosition), 100);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  R: TRectangle;
begin
  R := TRectangle.Create(Self);
  F := TCustomPopupForm.Create(Self);
  F.AniDuration := 0.5;
  F.ContentControl := R;
  F.OnAniTimer := AniTimerProc;
  F.PlacementTarget := Button1;
  F.Show;
end;
...

コメント行では、AniPosition を使用してフォームの透過性をアニメーションする方法を示しています。

TPopup.OnAniTimer におけるディスカッションも参照してください。

関連項目