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 :

[VB]Passage de Fonction en paramètre (d'une autre fonction)


Sujet :

VB 6 et antérieur

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Par défaut [VB]Passage de Fonction en paramètre (d'une autre fonction)
    Bonjour,
    je souhaiterai savoir s'il est possible de passer une fonction en paramètre d'une fonction en VB afin de factoriser mon code.

    Je pense que ca n'est pas possible en VB mais comme je suis pas encore expert ...

    Si c'est pas possible, avez vous des solutions pour contourner le problème.

    Merci d'avance.

  2. #2
    Membre éprouvé
    Inscrit en
    Mai 2002
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 163
    Par défaut
    Ce n'est pas ce qu'on appelle la récursivité ?

    plutot que de la passé en paramètre, pourquoi ne pas faire en sorte qu'elle s'appelle elle même ?

  3. #3
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Tu peux toujours ne pas de "casser la tête" et passer en paramètre, par exemple, un integer que la fonction appelée (la 1ère) utilisera (expressions conditionnelles) pour appeler l'autre fonction...

    Je pars du principe selon lequel la 2ème fonction est différente de la 1ère, sinon la récursivité permet à une fonction de s'appeler elle-même !

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    on peut aussi dans une fonction calculer des paramètres qui serront passées à une autre fonction

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Par défaut
    Il ne s'agit pas de récursivité mais d'une fonction de parcours d'arborescence qui selon le cas appelle des fonctions différentes.

    J'aurais voulu créé un module qui contient une fonction

    parcours_arbo(paramètre1, paramètre2, fonction1){
    ' je parcours l'arbo
    fonction1 (noeud_courant)
    je continue de parcourir l'arbo
    }

    et selon les cas, j'applique pas du tout la même fonction.
    Alors pour l'instant je duplique mon code et change le nom de ma fonction suivant le cas dans lequel je l'appelle mais c'est moche et pas du tout factorisé !!!

    j'ai pensé aussi à faire un module et puis selon la fonction que je souahite appelé je fais un select case mais je trouve ca pas très joli non plus ...

  6. #6
    HPJ
    HPJ est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Par défaut
    Si les fonctions à appeler sont des méthodes d'objets (déclarées dans un module de classe ou dans une form):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function toto() As String
        toto = "ok"
    End Function
     
    Function appel(nomFonction As String) As String
        appel = CallByName(Me, nomFonction, VbMethod)
    End Function
     
    Private Sub Form_Load()
        MsgBox appel("toto")
    End Sub

  7. #7
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Waouh! Ben là, HPJ, chapeau!!
    Je n'avais jamais entendu parler de "CallByName".

  8. #8
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Citation Envoyé par Megaxel
    Waouh! Ben là, HPJ, chapeau!!
    Je n'avais jamais entendu parler de "CallByName".

    http://vb.developpez.com/faq/?page=Langage#callbyname

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Par défaut
    Merci, je vais voir ce que je peux en faire mais la ca devient vraiment compliqué pour moi,
    le me de callByName ???!!!???

  10. #10
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Le Me ?
    oui, alors... laisse tomber...
    Mais jette quand-même un coup d'oeil dans l'aide en ligne sur ce mot, qui te simplifiera la vie plus d'une fois.

  11. #11
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Aïe!
    J'aime pô les coups de fouet, moi...

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/02/2012, 17h52
  2. passer le nom d'une fonction comme paramètre d'une autre fonction?
    Par med_alpa dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/03/2010, 12h57
  3. Réponses: 16
    Dernier message: 26/05/2009, 13h32
  4. Réponses: 15
    Dernier message: 02/08/2007, 11h17
  5. fonction en paramètre d'une autre fonction
    Par zorobab dans le forum Général Python
    Réponses: 3
    Dernier message: 25/03/2007, 13h34

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