littlemogwai
Messages postés4Date d'inscriptionjeudi 27 mai 2004StatutMembreDernière intervention23 mars 2006
-
22 mars 2006 à 18:18
DeltaFX
Messages postés449Date d'inscriptionlundi 19 avril 2004StatutMembreDernière intervention 8 avril 2009
-
24 mars 2006 à 22:54
Bonjour,
Je cherche une solution pour imbriquer plusieurs action de timer.
un algo qui ressemble à ça
Affichage fenetre
Frappe de Touche
Timer1
Actions Timer1 :
Jouer un son
Timer2
Action Timer2 : Affichage image
Timer3
Action Timer3 : Cacher Image
Reprise suite du code
....
Je me dépatouille bien avec le premier bloc mais je n'arrive pas à voir comment faire pour déclencher le timer 2.
J'ai bien essayé d'activer dans l'action du timer1 le lancement du timer2 mais je n'y arrive pas.
Si quelqu'un a un tuyau... merci d'avance.
littlemogwai
Messages postés4Date d'inscriptionjeudi 27 mai 2004StatutMembreDernière intervention23 mars 2006 23 mars 2006 à 14:31
En fait ces trois approches font un tout assez complet de mon souci :
La première solution est la plus classique : efficace par nature. Elle permet de prendre le bon chemin...
La deuxième est vraiment séduisante surtout quand on a beaucoup de conditions à gérer. Elle offre une grande souplesse mais réclame à mon avis une bonne rigueur pour ne pas "se perdre".
La troisième est, comme c'est souvent le cas, le truc le plus simple. On passe donc bien trop souvent à côté en cherchant à se compliquer la vie (ça devrait être l'inverse...). Pas la peine de prendre de l'artillerie "lourde" quand il ne s'agit que de figer l'appli : idéal quand on doit gérer une durée, une latence - comme pour mon histoire de délai entre son et image.
Génial d'avoir fait un tour aussi complet en si peu de temps. Merci à tous les trois, vous m'avez ouvert de nouveaux horizons .
Vous n’avez pas trouvé la réponse que vous recherchez ?
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 23 mars 2006 à 16:12
Juste une petite précision sur l'utilisation de Sleep() :
Si vous utilisez un Sleep dans votre application elle sera figé pendant toute la durée du Sleep. Les messages windows ne sont pas traités par votre application (ce qui est normal mais on oublie souvent ce détail).
Un teste tout simple :
Une application avec un bouton, dans le OnClick de ce dernier y mette un Sleep(5000).
Lancer l'application cliquer sur le bouton et de suite sur la croix pour fermer.
Si vous avez été rapide vous devrez attendre 4 secondes encore avant que votre application n'exécute la commande de fermeture.
Et si tu en met deux dans la même procedure il faudra attendre la somme des deux Sleep à moins d'y intercaler un "Application.ProcessMessage" entre les deux.
DeltaFX
Messages postés449Date d'inscriptionlundi 19 avril 2004StatutMembreDernière intervention 8 avril 20092 24 mars 2006 à 13:12
Et donc, faut pas utiliser un sleep (l'appli dort trop profondément) tel quel, mais plutot un Snooze( tm, copyrighted toussa....) :p
et au cas par cas, adapter "step" en fonction de la réactivité souhaitée pour le reste du systeme.
procedure Snooze(Duration,Step:integer);
var i:integer;
begin
for i:=0 to (Duration div Step) do
begin
sleep(Step);
Application.ProcessMessages;
end;
end;