Les msgbox bloquent le programme

tn1 Messages postés 24 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 1 novembre 2005 - 25 juin 2002 à 12:07
djtrefle Messages postés 36 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 28 juin 2008 - 15 mai 2008 à 17:53
quand on fait intervenir un messagebox, il bloque le programme jusqu'a que l'on appuis sur OK de celle-ci
c'est genant quand il y a un Timer, qui mesure le temps... sa fausse tout !!!

Comment eviter les les messages box bloquent le programme ??? et surtout les timers !!

merci pour vos réponses ;)
a+

5 réponses

cs_ynizon Messages postés 53 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 19 avril 2012 1
25 juin 2002 à 12:12
si tu es en deboguage, tu met des debug.print , ca saffichera ainsi dans la barre d execution, sinon, tu creer des fichiers Logs avec les messages, et tu vires toutes tes messagebox.
0
tn1 Messages postés 24 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 1 novembre 2005
25 juin 2002 à 12:36
comment sa ? debug.print
???
0
skrol29 Messages postés 114 Date d'inscription vendredi 3 mai 2002 Statut Membre Dernière intervention 17 novembre 2014
25 juin 2002 à 15:06
Ben pour moi c'est plutôt normal qu'un MsgBox bloque le code, je veux dire du point de vue ergonomie d'une application.

On n'interpelle l'utilisateur que pour demander une confirmation, ou afficher un résultat final. C'est à dire avant ou après un process.
Si tu veux interrompre un process, il faut mettre un bouton Annuler. Si tu veux afficher des info sur le déroulement d'un process en cours , il faut utiliser un zone d'affichage (contrôle TextBox par exemple).

Ma première réponse serait d'abord de dire qu'il n'est pas opportun d'afficher un MsgBox pendant un traitement.

Si vraiment vraiment tu veux, alors tu peux créer ton propre form qui fera le MsgBox.

--------------------
Skrol 29
www.skrol29.com
--------------------
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
19 sept. 2005 à 14:59
Il faut utiliser l'API MessageBox :





Private Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As _

Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As _

Long) As Long



Private Sub Command1_Click()

' L'appel à la MsgBox traditionnelle arrête tous les processus qui

' étaient en cours. Regardez donc le Timer dans Label1.

MsgBox "Le Timer s'arrête"

End Sub



Private Sub Command2_Click()

' L'appel à l'API MessageBox n'arrête pas les processus qui étaient

' en cours. Regardez Label1 qui continue de défiler ...

MessageBox Me.hwnd, "Le Timer ne s'arrête pas.", "API MsgBox", vbOKOnly + vbExclamation

End Sub



Private Sub Form_Load()

' Initialisation du Timer

Timer1.Interval = 100

Timer1.Enabled = True

End Sub



Private Sub Timer1_Timer()

' Le label contient l'heure courante et est raffraichi tous les

' Timer1.Interval [ms].

Label1.Caption = Time

End Sub




Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
djtrefle Messages postés 36 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 28 juin 2008
15 mai 2008 à 17:53
c'est parfais c'est tout a fais ce dont j'avais besoin !!

Excellent !!

Et surtout merci
0
Rejoignez-nous