Attendre réponse pendant un lapse de temps .... Sinon continuer
Mickey VB
Messages postés50Date d'inscriptionjeudi 5 août 2004StatutMembreDernière intervention15 janvier 2007
-
31 oct. 2005 à 14:01
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
31 oct. 2005 à 16:23
Bonjour,
J'ai besoin d'un peu d'aide!
J'ai créé une application qui lance automatiquement le traitement de certains fichiers à une heure donnée...
Je voudrais qu'un utilisateur lambda puisse prendre la main en manuel et donc empécher le traitement.
Pour cela je voudrais q'une msgbox s'affiche pendant une 10° de seconde et si personne n'a appuyé sur le bouton
pour prendre la main ... le programme continue.
Y-a-t-il un moyen simple de faire cela?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 31 oct. 2005 à 16:23
Salut
L'idée qui me vient à l'esprit est de :
- créer une forme 'frmMessage' en guise de MsgBox.
Dans la partie Déclaration de ta frmMessage, tu déclares une variable Public :
Public Reponse As Integer
- Tu la rends AlwaysOnTop dans le Form_Load (cherche sur vbFrance)
- Sur cette forme, tu expliques le pourquoi de cette alerte.
- Tu y mets un gros bouton 'Annuler'
- Tu y places un Timer qui tourne toutes les secondes (Interval = 1000)
- Dans le code du Timer, tu fais :
Static Compteur As Integer
Compteur = Compteur + 1
If Compteur >= 10 Then
Reponse = 1 ' pas d'action externe
Compteur = 0
Me.Hide
End If
- Dans le code du bouton Annuler :
Reponse = 2 ' on ne veut pas lancer
Me.Hide
- Au moment opportun dans ton code actuel, tu la montres :
Dim frmAvertissement As frmMessage
frmAvertissement.Reponse = 0 ' pas de réponse pour l'instant
frmAvertissement.Show vbModeless
' Attend une réponse
Do While frmAvertissement.Reponse = 0
DoEvents
Loop
' Action en fonction de la réponse
If frmAvertissement.Reponse = 1 Then
... ' pas eu d'action
Else
... ' Action sur Annuler, donc pas d'action
End If
' Démonte la forme
Unload frmAvertissement
Set frmAvertissement = Nothing
Surement à approfondir
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)