Unload me dans une form

Signaler
Messages postés
326
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
29 avril 2008
-
Messages postés
326
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
29 avril 2008
-
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

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
104
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/
Messages postés
326
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
29 avril 2008

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?
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
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]
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
15
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 !?
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
15
Et ce n'est qu'un complément de la réponse de DARKSIDIOUS.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
326
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
29 avril 2008

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
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
15
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 !?
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
104
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/
Messages postés
326
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
29 avril 2008

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.