J'utilise l'événement OnIdle pour des animations simples, et ça marche. Le problème, cependant, est que lorsque l'utilisateur commence à déplacer ou redimensionner la fenêtre, l'événement OnIdle arrête de se déclencher jusqu'à ce que l'opération de déplacement/redimensionnement soit terminée.Delphi: Détecter le début et la fin du déplacement de la fenêtre
J'ai besoin de détecter quand cela se produit, afin que je puisse mettre en pause toutes les animations. Mais comment puis-je détecter le mouvement de la fenêtre?
L'utilisation OnIdle est pas vraiment une bonne idée, car il provoque la charge cpu 100% sur le noyau actif. Utilisez un événement timer à la place, ce qui présente deux avantages: Il se déclenchera également dans la boucle de message secondaire, de sorte que l'animation continue pendant move/resize (ce qui devrait être le cas lorsque le glissement de la fenêtre est actif); et vous serez en mesure de définir un nombre raisonnable de pas d'animation par seconde, quelle que soit la vitesse du système. – mghie
Timer vs ralenti est un sujet intéressant. Les deux ont des avantages et des inconvénients, mais pour mes petites animations décoratives, onidle fera très bien. – Vegar
De telles "petites animations décoratives", si l'utilisateur ne peut pas les désactiver, peuvent coûter beaucoup de temps sur un ordinateur portable. En outre, vous volez activement des cycles de cpu d'autres applications. Essayez-le pour vous-même, en réalité OnIdle a seulement par contre. – mghie