tn1
Messages postés24Date d'inscriptionsamedi 29 décembre 2001StatutMembreDernière intervention 1 novembre 2005
-
14 juin 2002 à 15:36
tn1
Messages postés24Date d'inscriptionsamedi 29 décembre 2001StatutMembreDernière intervention 1 novembre 2005
-
14 juin 2002 à 18:00
a quoi sa sert exactement doevents ?
je sais que sa sert à ne pas bloquer windows ... mais comment ? je n'ai pas compris exactement l'utilisation...
Neo.balastik
Messages postés796Date d'inscriptionjeudi 17 mai 2001StatutMembreDernière intervention 5 mai 20097 14 juin 2002 à 16:20
Salut,
Tel que dit dans le MSDN:
(bonne lecture).
NéoB
DoEvents, fonction
Arrête momentanément l'exécution afin que le système d'exploitation puisse traiter d'autres événements.
Syntaxe
DoEvents( )
Remarques
La fonction DoEvents renvoie une valeur de typeInteger représentant le nombre de feuilles ouvertes dans les versions autonomes de Visual Basic (Visual Basic Édition professionnelle, par exemple). DoEvents renvoie un zéro dans toutes les autres applications.
DoEvents passe la main au système d'exploitation jusqu'à ce que ce dernier ait terminé de traiter les événements de sa file d'attente et que tous les codes de la file d'attente SendKeys aient été transmis.
La fonction DoEvents est particulièrement indiquée pour les opérations simples que l'utilisateur veut annuler juste après les avoir lancées, comme par exemple la recherche d'un fichier. Pour les opérations nécessitant une exécution plus longue, l'opérateur pourra plus aisément rendre la main au processeur s'il a recours à un contrôle Timer ou à un composant EXE ActiveX. Dans ce cas, la tâche s'effectue de manière complètement indépendante, hors de votre application, le système d'exploitation gérant à la fois le multitâche et le partage du temps.
Attention Lorsque vous rendez la main de manière temporaire à votre processeur dans une procédure d'événement, veillez à ce que laprocédure ne soit pas exécutée à nouveau par une autre portion de votre programme, avant que le résultat du premier appel ne soit renvoyé ; cette situation peut avoir des conséquences inattendues. En outre, n'utilisez pas DoEvents s'il existe un risque d'interaction imprévisible entre d'autres applications et votre procédure pendant que l'exécution est suspendue
Neo.balastik
Messages postés796Date d'inscriptionjeudi 17 mai 2001StatutMembreDernière intervention 5 mai 20097 14 juin 2002 à 16:23
Re,
Pour ce qui est de l'utilisation:
Imagine une boucle bouclant 10000 fois.
For i=1 to 10000
'du code ici
Next i
En faisant ceci, ton application est bloquée jusqu'àc e que la boucle soit terminée... Embêtant si l'on veut par exemple annuler le travail de la boucle.
Si l'on met à l'intérieur de la boucle l'instruction DoEvents, le système reprend la main à chaque passage dans la boucle. Donc il sera dès lors possible de cliquer sur un bouton de ton formulaire pour annuler le travail en cours.