Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

DoEvents

1 réponse
Avatar
Jean Saint Jalmes
Bonjour,

Existe t'il une meilleure solution que DoEvents pour cr=E9er=20
une boucle d'attente d'un =E9v=E8nement dans une proc=E9dure ?
Le probl=E8me est que si la fonction Wait_Event (ci-dessous)=20
est remplac=E9e par une proc=E9dure (Sub), l'application=20
appelante reprend la main avant l'=E9v=E8nement Clock_Timer=20
(en fait d=E8s le premier DoEvents) sans attendre la fin de=20
l'ex=E9cution de la proc=E9dure.

Exemple:

Private Flag as boolean

Public function Wait_Event() as boolean
Flag =3D true
......
Do while Flag
DoEvents
Loop
Wait_Event =3D Flag
End function

Private sub Clock_Timer()
Flag =3D False
End sub

Merci d'avance.

Jean

1 réponse

Avatar
François Picalausa
Hello,

Une solution serait de désactiver les contrôles qui ne doivent plus émettre
d'événements:
Control.Enabled = False

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"Jean Saint Jalmes" a écrit dans
le message de news:235801c427b2$8cf1b810$
Bonjour,

Existe t'il une meilleure solution que DoEvents pour créer
une boucle d'attente d'un évènement dans une procédure ?
Le problème est que si la fonction Wait_Event (ci-dessous)
est remplacée par une procédure (Sub), l'application
appelante reprend la main avant l'évènement Clock_Timer
(en fait dès le premier DoEvents) sans attendre la fin de
l'exécution de la procédure.

Exemple:

Private Flag as boolean

Public function Wait_Event() as boolean
Flag = true
......
Do while Flag
DoEvents
Loop
Wait_Event = Flag
End function

Private sub Clock_Timer()
Flag = False
End sub

Merci d'avance.

Jean