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 :

affichage d'une variable dans plusieurs forms


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 35
    Points : 20
    Points
    20
    Par défaut affichage d'une variable dans plusieurs forms
    Bonjour
    Je voudrais afficher une variable dans plusieurs forms j'ai déclaré ma variable public dans ma form et dans un module mais rein n'y fait pas de résultat

    Voici mon code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Affichage()
    Etat$ = Time$ + "  CTS=   " + Str$(CTSnouv) + "DSR=   " + Str$(DSRnouv) + "RI=   " + Str$(RInouv) + "DCD=  " + Str$(DCDnouv)
     Text3.Text = Etat$
     Open "Données.TX" For Append As #1
     Print #1, Etat$
     Close 1
     
    End Sub
    La variable que je doit récuperer s'appelle ( Etat$)


    Merci pour tous ceux qui peuvent m'apporter une soluce.

    A+

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 165
    Points
    17 165
    Par défaut
    Citation Envoyé par boettez Voir le message
    Bonjour
    Je voudrais afficher une variable dans plusieurs forms j'ai déclaré ma variable public dans ma form et dans un module mais rein n'y fait pas de résultat
    .........
    Merci pour tous ceux qui peuvent m'apporter une soluce.
    A+
    Ne la déclare que dans le module (en Public) sinon, pour une variable declarée dans un Form, pour l'utiliser dans un autre Form(ou module....) il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Recuperation As String
    Recuperation = FormX.Variable
    ou FormX est le nom du Form ou est déclarée la variable
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2007
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 512
    Points : 671
    Points
    671
    Par défaut
    Bonsoir,

    Mais un autre solution consiste à créer un module .bas et le définir comme sub main, et de déclarer les variables comme public dans ce module.
    A partir de là toutes les variables déclarées sont reconnues dans toutes les form avec uniquement leur nom sans y associer le nom de la form.

  4. #4
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Citation Envoyé par iclic Voir le message
    Bonsoir,

    Mais un autre solution consiste à créer un module .bas et le définir comme sub main, et de déclarer les variables comme public dans ce module.
    A partir de là toutes les variables déclarées sont reconnues dans toutes les form avec uniquement leur nom sans y associer le nom de la form.
    Je ne vois pas ce que le fait d'ajouter une procédure de démarrage dans le module public
    apporte de plus à ce que ProgElecT a déjà détaillé plus haut ?

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2007
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 512
    Points : 671
    Points
    671
    Par défaut
    Bonjour Dark,

    C'est vrai ,je n'avais pas bien lu la réponse de progelect.

    Mais la procédure sub main sert à charger des paramètres et les insérer dans des variables publiques que l'on peut avoir besoin de récupérer dans plusieurs forms.

  6. #6
    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
    Pas besoin d'un Sub main pour ça, n'importe quel module.bas fait l'affaire.
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  7. #7
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Bonjour,
    Citation Envoyé par iclic Voir le message
    Bonjour Dark,

    C'est vrai ,je n'avais pas bien lu la réponse de progelect.

    Mais la procédure sub main sert à charger des paramètres et les insérer dans des variables publiques que l'on peut avoir besoin de récupérer dans plusieurs forms.
    Non, pas forcément ; l'évènement Load du form initial peut le faire aussi bien (entr'autres solutions).

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 35
    Points : 20
    Points
    20
    Par défaut affichage d'une variable dans plusieurs forms
    Bonjour ProgElecT

    Toujours pas d'affichage de cette variable dans une autre form.
    J'explique: la variable que je veut relire dans une autre form s'appelle Etat$.
    Voici le code de la variable que je récupère dans la form qui a le nom de LISTbox:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Affichage()
    Etat$ = Time$ + "  CTS=   " + Str$(CTSnouv) + "DSR=   " + Str$(DSRnouv) + "RI=   " + Str$(RInouv) + "DCD=  " + Str$(DCDnouv)
     Text3.Text = Etat$
     Open "Données.TX" For Append As #1
     Print #1, Etat$
     Close 1
     
    End Sub
    Dans le module j'ai déclaré:
    Maintenant j'essai de récupérer cette variable Etat$ dans la form du nom de FOedit dont voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub text4_change
    Text4.text= Etat$
    End Sub
    Rien n'apparaît nada.
    As tu une soluce svp
    A+

  9. #9
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 165
    Points
    17 165
    Par défaut
    Je ne comprend pas vraiment à quel moment le de Foedit.text4.text doit prendre la valeur de ta variable.
    Si c’est à l’ouverture de la form du nom de Foedit, dans le Form_load, Si c’est au focus de la form du nom de Foedit, dans le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Form_GotFocus
    Text4.Text = Etat$
    End Sub
    Si c’est a chaque appel de la
    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
    Sub Affichage()
    Etat$ = Time$ & "  CTS=   " & Str$(CTSnouv) _
                & "DSR=   " & Str$(DSRnouv) _
                & "RI=   " & Str$(RInouv) _
                & "DCD=  " & Str$(DCDnouv)
     Text3.Text = Etat$
     'Open "Données.TX" For Append As #1
     'Print #1, Etat$
     'Close 1
     
    'même si elle n'est pas chargé,
    'le fait d'invoquer un de ces composants va enclencher son Load,
    'mais sans la rendre visible
    FOedit.Text4 = Etat$
    'si tu veux la rendre visible
    If FOedit.Visible = False Then FOedit.Visible = True
    End Sub
    Tu pourrais mettre le déclenchement depuis cette même Form au lieux et place de dans la sub Affichage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Text3_Change()
    FOedit.Text4 = Etat$
    'si tu veux la rendre visible
    If FOedit.Visible = False Then FOedit.Visible = True
    End Sub
    Mais il y a peut être d’autres événements dans ton programme qui sont susceptible de mettre à jour ce Text4.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 35
    Points : 20
    Points
    20
    Par défaut affichage d'une variable dans plusieurs forms
    Bonjour ProgElecT

    En fait la variable Etat$ je voudrais la récupérer dans plusieurs form

    Dans la form Foedit je voudrais envoyer la variable Etat$ dans le text4.text et dans la form FOcompt je voudrais envoyer toujours la même variable dans le text2.tex, mais la valeur doit être chargé même si la form n'est pas affichée
    tu me comprends.

    Merci d'avance pour ton écoute
    A+

  11. #11
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 165
    Points
    17 165
    Par défaut
    A quel endroit (Nom de la Sub) ta variable change de valeur ?
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    A quel endroit (Nom de la Sub) ta variable change de valeur ?
    Nom de la sub

    C'est un timer en l'occurence le timer 2 et dans la form qui s'intitule FOcompt

    Merci de me suivre.
    a+

  13. #13
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 165
    Points
    17 165
    Par défaut
    Donc if faut, dans ta sub Timer2_Timer mettre à jour ta variable Etat$ et tu y mets ce
    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
    Private Sub Timer2_Timer
    Etat$ = Valeur
    'si un Form utilisant cette variable est chargé
    For Each FormsProgCharger In Forms
        If FormsProgCharger.Name = "Form2" Then
             'actualiser l'utilisation de ta variable dans ce Form
             Form2.Text1.Text = Etat
        End If
        If FormsProgCharger.Name = "Form3" Then
             'actualiser l'utilisation de ta variable dans ce Form
        End If
        If FormsProgCharger.Name = "FormX" Then
             'actualiser....
        End If
    Next
    End Sub
    Ce code n'actulise que si le FormN est charger, mais ne provoque pas son chargement.

    En plus, si le/les FormN utilisant cette variable n’est pas chargé, il faut lui passer ta variable au moment du Load (ou bien Form_Initialize).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Load()
    Text1.Text = Etat$
    End Sub
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Donc if faut, dans ta sub Timer2_Timer mettre à jour ta variable Etat$ et tu y mets ce
    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
    Private Sub Timer2_Timer
    Etat$ = Valeur
    'si un Form utilisant cette variable est chargé
    For Each FormsProgCharger In Forms
        If FormsProgCharger.Name = "Form2" Then
             'actualiser l'utilisation de ta variable dans ce Form
             Form2.Text1.Text = Etat
        End If
        If FormsProgCharger.Name = "Form3" Then
             'actualiser l'utilisation de ta variable dans ce Form
        End If
        If FormsProgCharger.Name = "FormX" Then
             'actualiser....
        End If
    Next
    End Sub
    Ce code n'actulise que si le FormN est charger, mais ne provoque pas son chargement.

    En plus, si le/les FormN utilisant cette variable n’est pas chargé, il faut lui passer ta variable au moment du Load (ou bien Form_Initialize).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Load()
    Text1.Text = Etat$
    End Sub
    Bonsoir ProgElecT

    Donc dans tous les cas tant que ma form n'est pas visible elle ne se charge pas .
    J'essaie ton code et je tient au courant.
    Merci pour tes conseils.
    A+

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

Discussions similaires

  1. affichage d'une variable dans une zone de text
    Par mayssaMM dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 16/05/2011, 02h05
  2. [AC-2007] Fixer une variable dans plusieurs tables a l'ouverture
    Par theuma dans le forum Access
    Réponses: 2
    Dernier message: 27/04/2011, 15h53
  3. [Lazarus] Utiliser la même variable dans plusieurs FORM
    Par Yoanben dans le forum Lazarus
    Réponses: 2
    Dernier message: 25/05/2010, 15h26
  4. Affichage d'une variable dans une page html
    Par casper_mc dans le forum Langage
    Réponses: 5
    Dernier message: 03/12/2009, 11h41
  5. Affichage d'une variable dans un label
    Par Rydley dans le forum Windows Forms
    Réponses: 5
    Dernier message: 14/03/2007, 19h14

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