DoEvents, à quoi sa sert exactement ???

Signaler
Messages postés
24
Date d'inscription
samedi 29 décembre 2001
Statut
Membre
Dernière intervention
1 novembre 2005
-
Messages postés
24
Date d'inscription
samedi 29 décembre 2001
Statut
Membre
Dernière intervention
1 novembre 2005
-
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...

merci de donner un exemple d'utilisation

merci pour vos réponses !

3 réponses

Messages postés
796
Date d'inscription
jeudi 17 mai 2001
Statut
Membre
Dernière intervention
5 mai 2009
7
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
0
Messages postés
796
Date d'inscription
jeudi 17 mai 2001
Statut
Membre
Dernière intervention
5 mai 2009
7
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.

Tchao

NéoB
0
Messages postés
24
Date d'inscription
samedi 29 décembre 2001
Statut
Membre
Dernière intervention
1 novembre 2005

ok ! merci
j'ai compris !
0