bricoyeye
Messages postés326Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention29 avril 2008
-
11 nov. 2005 à 14:01
bricoyeye
Messages postés326Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention29 avril 2008
-
11 nov. 2005 à 20:50
Bonjour,
Jai fait en sorte que la croix rouge affiche un message lorsquon la clic dans une form(form1) (voulez vous quitter).
Mon problème, est de mettre une variable depuis une autre form(form2), mais quand je fait « unload me » pour fermer la form(form1), le message (voulez vous quitter) saffiche, et si je ne met pas çà, la variable nest pris en compte quaprès redémarrage.
bricoyeye
Messages postés326Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention29 avril 20082 11 nov. 2005 à 15:08
voici la source:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Dim Msg As String, indx As Integer
Msg = "Voulez-vous fermer l'application ?"
indx = MsgBox(Msg, vbYesNo + vbInformation, "Fermeture")
If indx = vbYes Then
Cancel = False
Else
Cancel = True
End If
End Sub
--------------------------------------
mais quand je fais unload me dans cette form, il me renvoit le message (sans avoir appuyé sur la croix), sinon (si je ne met pas Unload me) il ne me met la variable qu'au redemarrage!
Alors comment faire pour que la variable soit prise de suite sans avoir le message?
PCPT
Messages postés13278Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201848 11 nov. 2005 à 16:17
salut,
[VB6]
un bouton par défaut
Option Explicit
'
Dim bUnLoad As Boolean
'
'
Private Sub Form_Load()
' init var
bUnLoad = False
End Sub
'
'
Private Sub Command1_Click()
' ce bouton quitte sans message
bUnLoad = True
Unload Me
End Sub
'
'
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
' on quitte par la croix
If bUnLoad Then
Cancel = False
Else
Dim lRet As Long
lRet = MsgBox ("Voulez-vous fermer l'application ?", _
vbYesNo + vbInformation, "Fermeture")
If lRet vbYes Then Cancel False Else Cancel = True
End If
End Sub
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 11 nov. 2005 à 17:44
Salut, pourquoi ne pas se servir tout simplement de UnLoadMode ? C'est pourtant simple. Voir la MSDN.
L'argument unloadmode renvoie les valeurs suivantes :
Constante
,
Valeur
,
Description
,
----
vbFormControlMenu
,
0
,
L'utilisateur a choisi dans le menu Système de la feuille la commande Fermeture.
,
----
vbFormCode
,
1
,
L'instruction Unload est invoquée à partir du code.
,
----
vbAppWindows
,
2
,
La session Microsoft Windows en cours prend fin.
,
----
vbAppTaskManager
,
3
,
Le Gestionnaire de tâches de Microsoft Windows ferme l'application.
,
----
vbFormMDIForm
,
4
,
Une feuille MDI fille se ferme en raison de la fermeture de la feuille MDI.
,
----
vbFormOwner
,
5
,
Une feuille se ferme en raison de la fermeture de son propriétaire.
Dans ton cas, le code serait donc :
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = vbFormCode Then Exit Sub
Dim Msg As String, indx As Integer
Msg = "Voulez-vous fermer l'application ?"
indx = MsgBox(Msg, vbYesNo + vbInformation, "Fermeture")
If indx = vbYes Then
Cancel = False
Else
Cancel = True
End If
End Sub
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Vous n’avez pas trouvé la réponse que vous recherchez ?
bricoyeye
Messages postés326Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention29 avril 20082 11 nov. 2005 à 20:50
Oui, je sais, mais
J'ai essayé If UnloadMode = vbFormCode Then Exit Sub mais çà me fait tourner le programme en boucle!
Je dois avoir un truc quelque part, je vais voir!
merci de vos réponses.