FMX.Controls.TPopup.OnAniTimer

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

property OnAniTimer: TNotifyEvent read FOnAniTimer write SetOnAniTimer;

C++

__property System::Classes::TNotifyEvent OnAniTimer = {read=FOnAniTimer, write=SetOnAniTimer};

Propriétés

Type Visibilité  Source Unité  Parent
event public
FMX.Controls.pas
FMX.Controls.hpp
FMX.Controls TPopup


Description

Se produit périodiquement lors de l'exécution de l'animation personnalisée TCustomPopupForm.

L'événement OnAniTimer se produit périodiquement lors de la durée AniDuration lorsqu'une animation personnalisée s'exécute à l'affichage ou à la fermeture de la fiche popup TPopup.

Ecrivez un gestionnaire d'événement OnAniTimer pour fournir une fonction d'animation lors de l'affichage ou de la fermeture de la fiche popup en cours. AniDuration définit la durée de l'animation en secondes.

Pour afficher une fenêtre TPopup, vous pouvez définir la propriété IsOpen sur True ou appeler la méthode Popup. Lors de la restitution de la fenêtre TPopup, la fiche propriétaire appelle CreatePopupForm pour créer une instance de la fiche popup TCustomPopupForm stockée dans la propriété PopupForm. Vous remarquerez que les composants visuels placés dans la fenêtre TPopup sont contenus dans le ContentControl créé dans la fiche popup PopupForm.

Le gestionnaire d'événement OnAniTimer a le type TNotifyEvent déclaré comme suit :

 TNotifyEvent = procedure(Sender: TObject) of object;

Par conséquent, le paramètre Sender, dans l'exemple suivant, peut être transtypé en TCustomPopupForm. Regardez comment il est utilisé dans le gestionnaire d'événement AniTimeProc de l'événement OnAniTimer dans l'exemple suivant qui implémente l'animation exécutée lors de l'ouverture et de la fermeture de la fenêtre TPopup :

type
  TForm1 = class(TForm)
    Button1: TButton;
    Popup1: TPopup;
    Button2: TButton;
    Rectangle1: TRectangle;
    procedure FormCreate(Sender: TObject);
  public
    T: TDateTime;
    procedure AniTimeProc(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

procedure TForm1.AniTimeProc(Sender: TObject);
begin
  Button1.Text := FloatToStr(RoundTo((Now - T) * 86400{SecPerDay}, -2));
  TCustomPopupForm(Sender).ContentControl.Opacity := TCustomPopupForm(Sender).AniPosition;
  TCustomPopupForm(Sender).Left := Self.Left + Round(100 * TCustomPopupForm(Sender).AniPosition);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  T := Now;
  Popup1.Popup;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Popup1.AniDuration := 4;
  Popup1.OnAniTimer := AniTimeProc;
end;

end.

Remarquez que OnAniTimer peut utiliser AniPosition et d'autres propriétés de TCustomPopupForm.

Voir aussi