FMX.Forms.TCustomPopupForm.AniPosition
Delphi
property AniPosition: Single read FAniPosition;
C++
__property float AniPosition = {read=FAniPosition};
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
property | public | FMX.Forms.pas FMX.Forms.hpp |
FMX.Forms | TCustomPopupForm |
説明
0
と 1
の間の値を返す読み取り専用プロパティ。AniPosition は、OnAniTimer イベント ハンドラで使用することができます。
AniPosition 値は、カスタム アニメーション実行の時間 AniDuration の間、(現在のポップアップ フォームが開く間に)0 から 1 へ変わり、(閉じる間に)0から1に変わります。
AniPosition は、OnAniTimer イベント ハンドラにおいて、アニメーションされるプロパティの中間値で、パラメータとして使用することができます。たとえば、AniPosition を使用すると、カスタム アニメーションの間、中間位置や中間不透明度を計算することができます。オープニング アニメーションの、AniPosition = 0
がスタート時点に相当し、AniPosition = 1
が終了に相当します。
たとえば、以下のサンプルでは、フォームの Width(フォーム Size のコンポーネント)は、ポップアップ フォームが現れる間、そしてまた逆にそのフォームが閉じる間に、0
(AniPosition = 0
の場合)から 200
(AniPosition = 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 におけるディスカッションも参照してください。