Mise en œuvre des transitions animées pour les formulaires dans ChinaCock

La prochaine version du composant ChinaCock introduit une solution exclusive pour les animations de transition entre formulaires, ajoutant des effets d'animation lors de l'appel et de la fermeture des formulaires.

Cette implémentation présente les avantages suivants :

  • Séparation des responsabilités : L'animation est totalement indépendante des composants visuels et non visuels sur la fenêtre, réduisant ainsi le couplage. Une seule ligne de code suffit pour ajouter un effet d'anmiation en appelant les méthodes PushToForm pour l'entrée ou PopBackForm pour la sortei.
  • Faible couplage entre formulaires : La communication entre la fenêtre source et la fenêtre cible est gérée par une classe d'animation dédiée, TFormAnimTransition, pour afficher et fermer les formulaires cibles.
  • Compatibilité native Delphi : L'implémentation s'adapte aux méthodes natives de création de formulaires dans Delphi, utilisant les instances de formulaires déclarées automatiquement.
  • Fluidité et absence de scintillement : Des opitmisations approfondies, basées sur les SDK de plateforme natifs, garantissent des animations fluides et sans scintillement.
  • Multiplateforme : Actuellement compatible avec les plateformes Windows et Android.

Voici comment intégrer cette solution dans un projet pratique. Supposons un formulaire principal FormPrincipal qui appelle un formulaire secondaire FormulaireCameraID pour la vérification d'identité.

Appel d'un formulaire avec animation

Pour afficher FormulaireCameraID à partir de FormPrincipal, utilisez le code suivant :

procedure TFormPrincipal.BoutonActionClic(Sender: TObject);
begin
  if not Assigned(FormulaireCameraID) then
    FormulaireCameraID := TFormCameraID.Create(Application);
  TFormAnimTransition.AfficherAvecAnimation(Self, FormulaireCameraID, TTypeTransition.GlisserDepuisDroite, False,
    procedure(AInfo: TInfoTransition)
    begin
      // Callback après l'affichage complet du formulaire cible, pour l'initialisation ou le chargement de données
    end,
    procedure(AInfo: TInfoTransition)
    begin
      // Callback lors de la fermeture du formulaire cible, pour le traitement des données ou la libération
      FreeAndNil(FormulaireCameraID);
    end);
end;

La méthode AfficherAvecAnimation gère l'animation en une seule ligne. Voici ses paramètres :

class procedure TFormAnimTransition.AfficherAvecAnimation(
  ASource: TCustomForm; // Formulaire source
  ACible: TCustomForm; // Formulaire cible, instancié par le source
  const ATypeTransition: TTypeTransition = GlisserDepuisDroite; // Type d'animation
  const ASourceFixe: Boolean = False; // Si vrai, seule la cible est animée
  const AApresAffichage: TProc<TInfoTransition> = nil; // Callback après affichage
  const AApresFermeture: TProc<TInfoTransition> = nil); // Callback après fermeture

Fermeture d'un formulaire avec animation

Pour fermer FormulaireCameraID avec une animation, ajoutez un gestionnaire d'événement au bouton de retour :

procedure TFormCameraID.BoutonRetourClic(Sender: TObject);
begin
  FermerAvecAnimation(MrAnnuler);
end;

procedure TFormCameraID.FermerAvecAnimation(const AResultatModal: TModalResult);
begin
  Self.ModalResult := AResultatModal; // Optionnel selon les besoins
  TFormAnimTransition.RevenirArriere(); // Ferme le formulaire avec animation
end;

Ainsi, en seulement deux lignes de code, vous pouvez ajouter des transitions animées aux interactions entre formulaires sans modifier la logique existante, assurant une expérience utilisateur fluide et moderne.

Étiquettes: ChinaCock Delphi Animation formulaires transitions

Publié le 28 juillet à 20h13