[VB6] Ma variable ne prend pas les valeurs

Pitbull42 Messages postés 10 Statut Membre -  
 Utilisateur anonyme -
Bonjour à tous , je suis desespéré , je suis en train de faire un petit prog tout simple mais qui fait appelle à une variable globale .
Mon projet contient 2 form :
la premiere contient 4 images
la seconde contient 4 optionbutton qui attribu l'entier 0 , 1 , 2 , 3 a la variable globale CHGT .

Le soucis c'est que ma variable prend qu'une seule valeure , celle quelle a lors de l'initialisation , donc si vous pouviez m'aider , ce serait fort apprécié .

voici le code de la premiére form :
Option Explicit

Private Sub UserControl_Initialize()
menu.Show
If menu.CHGT = 0 Or menu.CHGT = 1 Or menu.CHGT = 2 Or menu.CHGT = 3 Then
kelimage
End If
End Sub

Sub kelimage()
Image1.Visible = (menu.CHGT = 0)
Image2.Visible = (menu.CHGT = 1)
Image3.Visible = (menu.CHGT = 2)
Image4.Visible = (menu.CHGT = 3)
End Sub


voici le code de la 2ieme form
Option Explicit
Public CHGT As Integer

Private Sub Option1_Click()
If Option1 = True Then
CHGT = 0
End If
End Sub

Private Sub Option2_Click()
If Option2 = True Then
CHGT = 1
End If
End Sub

Private Sub Option3_Click()
If Option3 = True Then
CHGT = 2
End If
End Sub

Private Sub Option4_Click()
If Option4 = True Then
CHGT = 3
End If
End Sub


merci d'avance
amicalement lucas

2 réponses

  1. Utilisateur anonyme
     
    Bonjour,

    Déclaré la variable dans un module externe !

    Lupin
    0
    1. Pitbull42 Messages postés 10 Statut Membre
       
      salut , j'ai lu ton message , le soucis c'est que je ne sais pas comment faire pour mettre ma variable dans un module externe !!
      peut tu m'aider ??
      0
  2. Utilisateur anonyme
     
    Bonjour,

    alors allons-y pas à pas, de la même façon que tu as ajouter un second formulaire, cette fois-ci tu dois sélectionner [ Module ].

    dans ce module tu declare une routine ainsi :

    Option Explicit
    '
    
    Public MaVariable As String
    '
    
    Sub Main()
    
        MaVariable = "Initialisation"
        Premiere.Show
        
    End Sub
    


    ensuite dans le formulaire #1 tu adresse comme d'habitude ...

    Option Explicit
    
    Private Sub cmdExecute_Click()
        MaVariable = txtTexte.Text
        Seconde.Show
        Unload Me
    End Sub
    '
    
    Private Sub cmdQuitter_Click()
        Unload Me
    End Sub
    '
    
    Private Sub txtTexte_Change()
        lblTexte.Caption = txtTexte.Text
    End Sub
    


    et tu peux la récupérer du second formulaire même s'il est fermé,
    de la même façon...

    Option Explicit
    
    Private Sub cmdExecute_Click()
        txtTexte.Text = MaVariable
    End Sub
    '
    
    Private Sub cmdQuitter_Click()
        Unload Me
    End Sub
    


    attention j'ai utilisé le même nom de textbox sur les 2 formulaires!

    dernière chose, il faut changer le démarrage du projet.

    pour ce faire, menu VB

    // Projet /Propriétés du projet... / Onglet Général
    / La 2ième liste déroulante qui se nomme "Startup Object"
    Dans cette liste devrait apparaître le nom de la routine Sub
    créer dans le module externe au formulaires qui est en fait
    un fichier de type [ .bas ] pour "basic" je crois. Il n'y a pas
    de visuel ce n'est que du code.

    Lupin
    0