Unload me dans une form

bricoyeye Messages postés 326 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 29 avril 2008 - 11 nov. 2005 à 14:01
bricoyeye Messages postés 326 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 29 avril 2008 - 11 nov. 2005 à 20:50
Bonjour,

J’ai fait en sorte que la croix rouge affiche un message lorsqu’on 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) s’affiche, et si je ne met pas çà, la variable n’est pris en compte qu’après redémarrage.


Y-at’il une solution ?

Merci.

9 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
11 nov. 2005 à 14:55
Teste la valeur du UnloadMode :



If UnloadMode = 0 Then 'message

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
bricoyeye Messages postés 326 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 29 avril 2008 2
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?
0
PCPT Messages postés 13278 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 48
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


<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>

++
PCPT [AFCK]
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
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 !?
0

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

Posez votre question
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
11 nov. 2005 à 17:46
Et ce n'est qu'un complément de la réponse de DARKSIDIOUS.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
bricoyeye Messages postés 326 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 29 avril 2008 2
11 nov. 2005 à 18:20
Merci de vos réponses, mais j'ai trouvé avec form.visible Fasle ou Troue


Le probléme, c'est que çà marchait trés bien, mais lorsque je faisai un unload sur ma form, çà me mettait le message, maintenant c'est ok.
merci
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
11 nov. 2005 à 18:43
Je pense que ta solution avec form.visible ne fait que reporter le problème et non le règler mais bon, si ça te va, tant mieux.

Bonne prog.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
11 nov. 2005 à 18:46
Mais pourquoi persiste à ne pas utiliser l'UnloadMode ??? comme l'a
dit canislupus, faire un Visible ne règlera sûrement pas le problème !

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
bricoyeye Messages postés 326 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 29 avril 2008 2
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.
0
Rejoignez-nous