Animation, timer

Résolu
wahidov2000 Messages postés 31 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 15 septembre 2013 - 30 sept. 2008 à 13:59
wahidov2000 Messages postés 31 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 15 septembre 2013 - 4 oct. 2008 à 12:49
bonjour ,
je veux juste savoir comment faire pour qu'un timer soit toujours en execution (pas d'interuption)
car j'utilise des bases de donnée de grande taille et quand je fait par exemple table1.open l'animation qui est liée au timer s'arrete jusqu'a la fin de l'instruction .
langage DEILPH
merci d'avance

 

5 réponses

Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
30 sept. 2008 à 19:55
je connais pas le langage DEILPH ... ^^

Normalement un timer ne s'arrête pas tant que son intervalle n'est pas définie à 0 ou sa propriété Enabled à False. Néanmoins, il utilise les ressources système pour se répéter, donc il peut avoir des problèmes de fonctionnement en cas de surcharge des ressources système.
Essaye de rendre plus légère ta base, de la faire fonctionner plus fluidement, et place eventuellement un Application.ProcessMessages dans ton timer.
Ou utilise un Thread.

Cordialement, Bacterius !
3
Utilisateur anonyme
30 sept. 2008 à 21:27
Salut : Petite correction Bacterius
"son intervalle n'est pas définie à 0" : un timer admet comme valeur limite non pas zéro mais 17ms donc quant on utilise un interval inférieur à 17 l'interval réel est de 17ms
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
30 sept. 2008 à 21:36
Ah, je ne savais pas ^^ merci Francky.

Cordialement, Bacterius !
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
1 oct. 2008 à 21:38
je pense que, si ton application est monothread, le lancement de la procedure associée au OnTimer se fera une fois la procedure en cours terminée.
Par exemple, si tu as un timer avec un interval de 1000, et que la procedure OnTimer est la suivante :

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  sleep(5000);
end;

alors le 2eme appel de cette procedure ne se fera pas 1s apres la premiere, mais 5s apres, le temps de terminer le 1er appel.

donc, si tu veux que ton traitement lourd n'interfere pas sur le timer, je te conseille plutot de faire ce traitment dans un thread a part.

@francky : tres interessant comme remarque
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wahidov2000 Messages postés 31 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 15 septembre 2013
4 oct. 2008 à 12:49
merci infiniment pour vos reponces
 
0
Rejoignez-nous