IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[Debutant] Passage d'une variable


Sujet :

VB 6 et antérieur

  1. #1
    Membre actif Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Points : 274
    Points
    274
    Par défaut [Debutant] Passage d'une variable
    Bonjour,

    Comment passer une variable d'une fenêtre à une autre ? Je fais un .Show à partir de la première fenêtre... Mais comment passer ma variable ?

    Merci !

  2. #2
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    si c'est une variable publique déclarée dans un module à part, elle sera "reconnue" quelle que soit la feuille active.

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Dans ta feuille à ouvrir, tu peux soit
    - créer des propriétés publique de la feuille.
    - faire une procédure appelante (publique) avec un paramètre, que tu appeles depuis la première.

    http://www.developpez.net/forums/sho...able+fen%EAtre

    A+, Hervé.

  4. #4
    Membre actif Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Points : 274
    Points
    274
    Par défaut
    Merci.

    J'essaye ainsi :

    Fenetre appelante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Private pForm                           As New StdCActionFormManager
    Public ObjectId As String
     
     
    Private Sub cmdCancel_Click()
         Unload Me
    End Sub
     
    Private Sub cmdSearch_Click()
        If tbId.text > "" Then
            ObjectId = tbId.text
     
            Dim f As New dlgBoxSearchForIdResult
            showActionForm f
            Unload Me
        End If
    End Sub
     
    Private Sub Form_Initialize()
        pForm.Init Me
    End Sub

    Fenetre appellée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    Private pForm                           As New StdCActionFormManager
    Private pFormParent                           As New dlgBoxSearchForId
     
     
    Private Sub cmdCancel_Click()
        Dim f As New dlgBoxSearchForId
        showActionForm f
        Unload Me
    End Sub
     
    Private Sub cmdOk_Click()
        Unload Me
    End Sub
     
    Private Sub Form_Initialize()
        pForm.Init Me
        Dim test As String
        test = pFormParent.ObjectId
     
        'Dim rqst SSearchIdQuery
        'Dim doRply SSearchIdQueryResult
     
        'Set doRply = core.DispatchInstanceMethod("SearchId", "query", rqst)
     
    End Sub
    Ma variable test reste vierge... vous allez me dire que je viens de l'instancier... oui... comment puis-je faire ? Je vous pourquoi cela ne fonctionne pas, mais je ne sais pas comment résoudre...

  5. #5
    Membre averti Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Points : 305
    Points
    305
    Par défaut
    Salut à tous

    Vous pouvez faire comme suit :

    dans la fenêtre appelée (frmAppelee), vous déclarez une variable publique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public MaVariable as ...
    puis dans une autre fenêtre, vous pouvez faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    frmAppelee.MaVariable = ...
    frmAppelee.Show

    Cordialement..

  6. #6
    Membre actif Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Points : 274
    Points
    274
    Par défaut
    Bonjour,

    Je teste, je ne vois pas ce qui m'échappe, mais cela ne fonctionne pas...

    Voici le code de la fenêtre appellante dlgBoxSearchForId :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public ObjectId As String
     
    Private Sub cmdSearch_Click()
        If tbId.text > "" Then
            ObjectId = tbId.text           
            dlgBoxSearchForIdResult.Show (1)
            Unload Me
        End If
    End Sub
    Et voici le code de la fenêtre appellée dlgBoxSearchForIdResut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Form_Initialize()
        pForm.Init Me
        Dim ObjectId As String
        ObjectId = dlgBoxSearchForId.ObjectId
    End Sub
    Ma variable est bien modifiée dans la première fenêtre, mais je ne recupère pas sa valeur dans la seconde, la variable y est alors non setée...

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,


    Je viens de faire un copier/coller rigoureux de ton code et en créant, sur chacune des deux Forms, les mêmes contrôles que toi.
    Et en éliminant bien évidemment la ligne
    pForm.Init Me
    dont j'ignore ce qu'elle lance de son côté (puisque nous n'en avons pas le code)

    Je récupère bien la valeur de la variable !

    EDIT :
    Me pemettras-tu de t'interroger sur la raison (nécessaire ?...) de décharger ta 1ère Form et de te compliquer ainsi la tâche gratuitement ?

    Extrait de l'aide en ligne, donc :
    Lorsqu'une feuille est déchargée, seul l'élément affiché est déchargé. Le code associé au module de la feuille demeure en mémoire.
    Matière à sage réflexion...

  8. #8
    Membre actif Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Points : 274
    Points
    274
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Bonjour,


    Je viens de faire un copier/coller rigoureux de ton code et en créant, sur chacune des deux Forms, les mêmes contrôles que toi.
    Et en éliminant bien évidemment la ligne
    pForm.Init Me
    dont j'ignore ce qu'elle lance de son côté (puisque nous n'en avons pas le code)

    Je récupère bien la valeur de la variable !

    EDIT :
    Me pemettras-tu de t'interroger sur la raison (nécessaire ?...) de décharger ta 1ère Form et de te compliquer ainsi la tâche gratuitement ?

    Extrait de l'aide en ligne, donc :

    Matière à sage réflexion...
    En effet cela fonctionne... je ne sais pas comment j'ai fais mon compte pour en conclure que cela ne fonctionnais pas...

    Désolé et merci de ta patience !

    Bonne journée !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. DEBUTANT Lire dans une variable type CString
    Par Hokagge dans le forum MFC
    Réponses: 2
    Dernier message: 01/12/2005, 10h53
  2. passage d'une variable dans une frame
    Par Atchoum_002 dans le forum Langage
    Réponses: 2
    Dernier message: 17/10/2005, 17h06
  3. passage d'une variable en parametre
    Par duga dans le forum Langage
    Réponses: 4
    Dernier message: 11/09/2005, 12h19
  4. [quai debutant] : creation d'une variable globale.
    Par bapman344 dans le forum Access
    Réponses: 4
    Dernier message: 23/06/2005, 11h33
  5. [C#] Passage d'une variable pour un controluser
    Par julio84 dans le forum ASP.NET
    Réponses: 10
    Dernier message: 07/04/2005, 13h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo