Bonsoir le forum,
J'espère que je suis dans la bonne section ?
Je me casse les dents sur un problème d'animation depuis des jours sans trouver de solution alors je me résous à faire appel au forum. J'ai regardé l'aide et pas mal de tuto mais je ne trouve pas précisément ce que je cherche. Je trouve bien ce que chaque propriété fait mais pas concernant mon problème.
J'utilise Delphi 12 Athens sur un Windows 11 Professionnel 23H2.
J'ai un programme FMX (Desktop) avec un TForm principal. Dessus j'ai un TLayout et à l'intérieur je détruis et crée successivement des objets TFrame qui représentent différents écrans.
Sur un de ces TFrame (écran) j'ai réalisé une animation avec 10 TArc qui est un peu la même chose qu'un curseur lorsque le programme attend longtemps quelque chose. Chaque TArc possède son propre TFloatAnimation où je joue avec 0..360 pour l'angle de rotation et en mode loop.
Quand je lance ce programme comme ça et que je crée le TFrame spécifique avec l'animation de l'arc, ça va tout se passe bien ! Mais dès lors que j'ajoute des TTimers sur le TForm principal ou dans un autre TForm qui se trouve dans la section "uses" du TForm principal, les choses tournent mal ! En fait, l'animation semble laguer quelques microsecondes entre chaque loop de TFloatAnimation ce qui donne un rendu très approximatif et donne l'impression que l'application est bloquée ou défaillante. J'ai quand même l'impression que c'est lié aux timers car plus il y en a (j'en ai 5 au total) ou si le traitement du timer est un peu long (suivant le timer) alors le lag semble plus prononcé !
Du coup je ne suis pas sûr de bien utiliser les animations !
Quelqu'un a t-il déjà rencontré ce problème ? Peut-être que je n'ai pas toutes les informations ou que j'ai codé quelque chose de travers ? Je n’ai rien vu sur la documentation d’Embarcadero concernant ce point spécifique.
Peut-être n'est-il pas possible d'utiliser TFloatAnimation sur un TFrame et/ou avec TTimers ? Peut-être faudrait-il que j'utilise TTask (parallelisation) ou que je threade mon application ? Mais avant de partir dans des délires de programmation qui vont me coûter du temps et peut-être générer une usine à gaz j'aimerais être sûr d'aller dans le bon sens ?
Je vous serais reconnaissant si vous aviez la gentillesse de me faire part de vos commentaires ou d'une direction, un conseil ou un indice car je suis vraiment coincé là.
Merci d'avance pour votre aide le forum.
Partager