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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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" <anonymous@discussions.microsoft.com> a écrit dans
le message de news:235801c427b2$8cf1b810$a401280a@phx.gbl
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
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