FMX.Controls.TPopup.OnAniTimer
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.