Le pendant de DialogResult

cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009 - 3 mars 2005 à 20:22
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 - 3 mars 2005 à 23:43
Bonjour à tous,



Je j'aimerais connaître le pendant de DialogResult (VBNET) pour VB6.
J'affiche une boite dialog standard et je veux retourner la valeur du
bouton sélectionné (à ma Form appelante) pour fermer cette boîte de
dialog (OK ou CANCEL).


Merci d'avance


thierry la fronde

4 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
3 mars 2005 à 20:44
Je suppose que tu veux parler du MessageBox sou VB6, donc un petit exemple :



Dim retour As Integer



retour = MsgBox("Bienvenue sur VBFrance.com", vbOKCancel, "VBFrance")



If retour = vbOK Then



' Met ton code pour Ok ici



Else



' Met ton code pour Cancel ici



End If







<hr size="2" width="100%">Si le cerveau était assez simple pour que nous puissions le comprendre,

nous serions assez bête pour ne pas le comprendre malgré tout.
0
cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009
3 mars 2005 à 21:03
C'est à peu près ça, à part que dans ma boîte de dialog j'ai des
TextBox , Option bouton ... Et qu'il faut que je récupère leur contenu
avant la destruction de mon dialog

thierry la fronde
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
3 mars 2005 à 21:45
En fait tu utilise une simple form comme boite de dialog.



Ce que je fait dans ce cas là, je n'affiche pas la feuille, mais
j'appele une fonction (ex : Dialog_Load) que j'ai créer dans cette
feuille.

Cette fonction se charge d'initialiser toute la feuille, puis de l'afficher en Modal.
Sur
le click du bouton, je positionne une variable globale privée à la
feuille, et je cache la feuille (Me.Hide). Donc retour à ma fonction
dans laquelle je gère la réponse (avec la variable globale).

Puis je retourne cette réponse et je décharge la feuille.


Option Explicit



''''''''''''''''''''''''''''''

'Variables globales au module

''''''''''''''''''''''''''''''

Public choix As
Integer
'Choix de l'opérateur



'*======================================================================================*

'*
Description :
Chargement de la boite de dialogue
personnalisée
*

'*======================================================================================*

Public Function Dialog_Load(prompt As String, boutons As Integer, titre As String) As Integer

Dim rmask1, rmask2, rmask3 As Integer



Screen.MousePointer = vbDefault



' Défintion des constantes de masque

Const mask1 = 15 'Bouton

Const mask2 = 240 'Icones

Const mask3 = 3840 'Mode modal



' Initialisation

choix = -1



' Titre de la boite

frmDialog.Caption = titre



' Type de boite à afficher

rmask1 = mask1 And boutons

rmask2 = mask2 And boutons

rmask3 = mask3 And boutons



' Type de boutons

If rmask1 vbOKOnly Or rmask1 vbOKCancel Then

cmdOK.Caption = "OK"

cmdOK.Visible = True

cmdOK.Enabled = True

End If



If rmask1 = vbOKCancel Then

cmdAnnuler.Caption = "Annuler"

cmdAnnuler.Cancel = True

cmdAnnuler.Visible = True

cmdAnnuler.Enabled = True

End If



If rmask1 = vbYesNo Then

cmdOK.Caption = "OUI"

cmdOK.Visible = True

cmdOK.Enabled = True

cmdAnnuler.Caption = "NON"

cmdAnnuler.Visible = True

cmdAnnuler.Enabled = True

End If





'Type d'icone

If rmask2 = vbExclamation Then 'Message d'avertissement

'imgIco.Picture = LoadResPicture(2, vbResIcon)

End If

If rmask2 = vbCritical Then 'Message d'erreur

'imgIco.Picture = LoadResPicture(4, vbResIcon)

End If

If rmask2 = vbQuestion Then 'Question

'imgIco.Picture = LoadResPicture(3, vbResIcon)

End If



' Contenu du message

lblMsg.Caption = prompt

lblMsg.Visible = True



' Affichage feuille modale

frmDialog.Show 1



' La suite du code est exécutée quand la feuille modale frmDialog est cachée

' c.a.d quand l'opérateur a sélectionné un bouton



' Traitement de la réponse :



'Ici rien à faire, mais ça pourrais venir......





' Retourne le choix de l'opérateur

' Cas de vbYesNo au lieu de vbOkCancel

If rmask1 = vbYesNo Then

If choix = vbOK Then

choix = vbYes

Else

choix = vbNo

End If

End If



Dialog_Load = choix



Unload Me



End Function



'*======================================================================================*

'*
Description : La
boite de dialogue retourne la constante
vbCANCEL *

'*======================================================================================*

Private Sub cmdAnnuler_Click()



choix = vbCancel

frmDialog.Hide



End Sub



'*======================================================================================*

'*
Description : La
boite de dialogue retourne la constante
vbOK
*

'*======================================================================================*

Private Sub cmdOK_Click()



choix = vbOK

frmDialog.Hide



End Sub



Désolé pour la taille de la police, c'est pour que ça prenne moins de place, le code étant un peu long

pour cet exemple il te faut 1 feuille (frmDialog), 2 boutons (cmdOk et
cmdAnnuler), un label (lblMsg) et une image (imgIco) (pas obligatoire
car désactivé dans ce code).

Tu colle ce code dans la feuille.

Et après tu l'appele comme çà :

retour = frmDialog.Dialog_Load("Bienvenue sur VBFrance.com", vbOKCancel, "VBFrance")






<hr size="2" width="100%">Si le cerveau était assez simple pour que nous puissions le comprendre,

nous serions assez bête pour ne pas le comprendre malgré tout.
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
3 mars 2005 à 23:43
Salut,
D'abord tu peux te passer de retour avec un Select Case direct sur la msgbox
Ensuite tu peux renvoyer tes valeur à la proprièté .Tag de ta feuille c'est une solution parmis tant d'autres

Select Case MsgBox("Bienvenue sur VBFrance.com", vbOKCancel, "VBFrance")
Case vbok
MyFormAppelante.Tag = Text1.Text & " " & Text2.text
Case vbCancel
End Select



Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0
Rejoignez-nous