FMX.Controls.TPopup.OnAniTimer
Delphi
property OnAniTimer: TNotifyEvent read FOnAniTimer write SetOnAniTimer;
C++
__property System::Classes::TNotifyEvent OnAniTimer = {read=FOnAniTimer, write=SetOnAniTimer};
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
event | public | FMX.Controls.pas FMX.Controls.hpp |
FMX.Controls | TPopup |
Beschreibung
Wird während der benutzerdefinierten Animationsausführung TCustomPopupForm immer wieder ausgeführt.
Das OnAniTimer-Ereignis wird immer wieder während einer AniDuration-Zeit ausgeführt, während eine benutzerdefinierte Animation ausgeführt wird, während das aktuelle TPopup-Popup-Fenster erscheint und geschlossen wird.
Schreiben Sie eine OnAniTimer-Ereignisbehandlungsroutine, um eine Animations-Funktionalität während des Erscheinens und Schließens des aktuellen Popup-Fensters bereitzustellen. AniDuration definiert die Animationsdauer in Sekunden.
Um ein TPopup-Fenster anzuzeigen, können Sie die Eigenschaft IsOpen auf True
setzen oder die Popup-Methode aufrufen. Mit dem Rendern des TPopup-Fensters, ruft das übergeordnete Formular CreatePopupForm auf, um eine Instanz eines TCustomPopupForm-Popup-Formulars, das in der PopupForm-Eigenschaft gespeichert ist, zu erstellen. Beachten Sie, dass alle visuellen Komponenten, die sich im TPopup-Fenster befinden, in ContentControl, das im PopupForm-Popup-Formular erstellt wurde, enthalten sind.
Die OnAniTimer-Ereignisbehandlungsroutine hat den TNotifyEvent-Typ wie folgt deklariert:
TNotifyEvent = procedure(Sender: TObject) of object;
Daher kann der Sender
-Parameter im folgenden Beispiel in TCustomPopupForm konvertiert werden. In der folgenden Beispiel-Implementierungsanimation zum Erscheinen und Schließen des TPopup-Fensters sehen Sie, wie dies in der AniTimeProc
-Ereignisbehandlungsroutine des OnAniTimer
-Ereignisses verwendet wird:
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.
Beachten Sie, dass OnAniTimer AniPosition und andere Eigenschaften von TCustomPopupForm verwenden kann.