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 :

appel de function


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 2
    Par défaut appel de function
    je voudrais que vous m'aidier à réaliser une fonction dans un module de vb6 pour remplacer le code suivant qui devient long sant avoir terminer:

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Private Sub mn_mfour_Click()
    Frm_cl.Enabled = False
    Frm_cl.Visible = False
    Frm_four.Enabled = True
    Frm_four.Visible = True
    Frm_prod.Enabled = False
    Frm_prod.Visible = False
    End Sub
     
    Private Sub mn_mpro_Click()
    Frm_cl.Enabled = False
    Frm_cl.Visible = False
    Frm_four.Enabled = False
    Frm_four.Visible = False
    Frm_prod.Enabled = True
    Frm_prod.Visible = True
    End Sub
     
    Private Sub mn_nfour_Click()
    Frm_cl.Enabled = False
    Frm_cl.Visible = False
    Frm_four.Enabled = True
    Frm_four.Visible = True
    Frm_prod.Enabled = False
    Frm_prod.Visible = False
    End Sub
     
    Private Sub mn_npro_Click()
    Frm_cl.Enabled = False
    Frm_cl.Visible = False
    Frm_four.Enabled = False
    Frm_four.Visible = False
    Frm_prod.Enabled = True
    Frm_prod.Visible = True
    End Sub
     
    Private Sub mn_spro_Click()
    Frm_cl.Enabled = False
    Frm_cl.Visible = False
    Frm_four.Enabled = False
    Frm_four.Visible = False
    Frm_prod.Enabled = True
    Frm_prod.Visible = True
    End Sub

  2. #2
    Membre confirmé
    Avatar de nabil
    Inscrit en
    Avril 2002
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 223
    Par défaut
    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
    27
    28
    29
    30
     
    Private sub etat(n as integer)
    select case n
    case 0:code0'mn_mfour
    case 1:code1'mn_mpro
    case 2:code2'mn_nfour
    case 3:code3'mn_npro
    case 4:code4'mn_spro
    end select
    end sub
     
    Private Sub mn_mfour_Click()
    etat(0)
    End Sub
     
    Private Sub mn_mpro_Click()
    etat(1)
    End Sub
     
    Private Sub mn_nfour_Click()
    etat(2)
    End Sub
     
    Private Sub mn_npro_Click()
    tat(3)
    End Sub
     
    Private Sub mn_spro_Click()
    etat(4)
    End Sub

  3. #3
    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
    Par défaut
    Bonjour lavida,


    Il faut te servir de la collection Form

    Voilà un exermple (à toi de l'adapter à ton cas)

    Un projet avec 4 Forms nommées Form1, Form2, Form3 et Form4

    sur Form1 : un bouton de commande Command1

    Code :

    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 Sub Form_Load()
      'la collection Forms ne concerne que les Forms chargées.
      'ce que l'on fait donc ici
      Form2.Show
      Form3.Show
      Form4.Show
      valide "Form1" ' et ici on fait d'une pierre 2 coups : seule Form1 sera visible au départ
    End Sub
     
    Private Sub Command1_Click()
        valide "Form4" ' tu choisis ici ta Form
    End Sub
     
     
    Private Sub valide(maforme As String)
      For Each f In Forms
        Select Case f.Name
          Case maforme
            f.Visible = True
            f.Enabled = True
          Case "Form2", "Form3", "Form4" ' tu ne mets là que les Forms parmi lesquelles décider
            f.Visible = False
            f.Enabled = False
        End Select
      Next
    End Sub
    Lance ... tu vas comprendre...

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    Sympa, y'a 2 solutions différentes J'aime bien quand ça se passe comme ça

    Au passage, ton exemple ucfoutu met en évidence une des lacunes les plus graves (à mon sens) de vb6 : pas de variable dynamiques.

    Par ex en php, tu peux faire ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function machin($ma_variable_d_entrée as string) {
    $ma_variable_locale as object;
    $var1 as object;
    $var2 as object;
    $var3 as object;
        /* du code pour peupler var1, var2 et var3 par exemple ... */
        $ma_variable_locale =  $$ma_variable_d_entrée;
     
    }//EOF
    Dans cet exemple, volontairement vb-isé pour que tout le monde comprenne (les dollars en php représentent les variables) la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ma_variable_locale =  $$ma_variable_d_entrée;
    permet d'affecter à "ma_variable_locale" la variable dont le nom est la string contenue dans "ma_variable_d_entrée".

    Si la chaine "ma_variable_d_entrée" contient "var1" par exemple, alors $ma_variable_locale = $var1 !

    Très très puissant, et dans notre exemple du coup, on pourrait accéder à la form voulue (dont le nom est passé en paramètre) en une seule ligne en bidouillant un peu ...

  5. #5
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    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 131
    Par défaut
    Bonjour,

    Attention à ne pas affirmer sans certitude
    Citation Envoyé par Vld44 Voir le message
    Sympa, y'a 2 solutions différentes J'aime bien quand ça se passe comme ça

    Au passage, ton exemple ucfoutu met en évidence une des lacunes les plus graves (à mon sens) de vb6 : pas de variable dynamiques.
    .../...
    ... et le Dictionary ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Function machin(ma_variable_d_entrée As String)
        Dim ma_variable_locale As New Dictionary
        Dim var1 As Object, var2 As Object, var3 As Object
     
        Set var1 = Form1
        ' du code pour peupler var1, var2 et var3 par exemple ... '
        ma_variable_locale.Add ma_variable_d_entrée, var1
     
        Debug.Print TypeName(ma_variable_locale(ma_variable_d_entrée))
     
    End Function
    Evidemment l'utisation sera moins évidente qu'avec php mais
    il n'y a encore rien que je n'ai vu impossible avec VB6 ce qui n'est pas le cas avec php
    Ceci dit ce n'est pas pire que dire
    Citation Envoyé par Ucfoutu
    Il faut te servir de la collection Form
    comme s'il n'y avait qu'une seule solution - je te rejoindrais donc sur ta 1ère phrase citée plus haut.

  6. #6
    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
    Par défaut
    Bonjour DarkVader,

    Tu as raison : le verbe falloir m'est venu (de bon matin) à la place du verbe pouvoir...

    J'aurais pas du l'utiliser (et ce d'autant que j'ai 3 autres solutions... mais celle que j'ai exposée sera plus compréhensible pour lavida ...)

  7. #7
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    Citation Envoyé par DarkVader Voir le message
    ... et le Dictionary ?
    Evidemment l'utisation sera moins évidente qu'avec php
    C'est de la haute bidouille ton truc Comment dire ... Mais c'est pas la classe quoi, pour moi y'a pas photo entre une fonctionnalité native propre et nette et des trucages maisons ... (bon, ça me rappelle une conversation ou tu comparais extends avec implement)

    Mais méa culpa, on s'en sort quand même.

Discussions similaires

  1. Appeller une function javascript de la page mère
    Par Anubis dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/07/2007, 15h22
  2. Appel de function sur événement SurClic
    Par Lingo dans le forum Access
    Réponses: 1
    Dernier message: 06/10/2006, 12h52
  3. Page Html qui appel une function
    Par grimsk dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 15/09/2006, 20h01
  4. Appel de function en SQL Dynamique
    Par dkd dans le forum Oracle
    Réponses: 22
    Dernier message: 28/09/2004, 18h01

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