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 :

[VB6] Functors ?


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Par défaut [VB6] Functors ?
    Bonsoir, (et bonne année 2007 !)

    Je cherche à appeler dynamiquement une fonction, c'est-à-dire à enregistrer son nom dans une variable pour ensuite appeler la fonction par le biais de cette variable.

    Est-ce possible ?

    Merci d'avance.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Par défaut
    Salut !

    tu peu créer une fonction dans un module en utilisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function NomdelaFonction...
    .....
    End Function
    puis l'appeler quand tu en a besoin.
    Personnelement je stock mes fonctions dans un module spécifique que je nomme Betement "Fonction"
    L'utilisation de la variable me semble inutil car tu peu l'appeler directement par son nom.(Question de point de vue)

    A+

  3. #3
    Membre confirmé Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Par défaut


    Oui jusque là je suis OK. Mais ma demande est parfaitement justifiée ; En fait je cherche à savoir s'il est possible de reproduire les functors du C++.

    J'ai plusieurs fonctions qui doivent être appelée en fonction de l'item que je traite. Ainsi, en un seul appel générique (sans avoir à faire un schéma if interminable et pas tellement évolutif) la fonction adéquate sera appelée.

    Merci pour la réponse

  4. #4
    Membre confirmé Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Par défaut CallByName ?
    J'ai peut-être une piste de solution...

    Pour résumer le problème, je cherche donc, par le biais d'une variable, à créer un pointeur de fonction.

    J'ai trouvé sur un forum Microsoft les frasques d'un internaute pas très habitué au VB (comme moi) et plutôt habitué au C++ (comme moi), qui cherche à utiliser un pointeur sur fonction à l'aide de ces chers opérateurs de pointage *.

    Bref, une réponse lui est faite au sujet de la fonction CallByName(). Je vais évidemment approfondir le sujet, mais en attendant si certains pouvaient me dire si je m'engage dans la bonne voie, ça serait pas si mal...

    Merci !

  5. #5
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Creuse!!!

    La vérité est au bout du tunnel.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  6. #6
    Membre confirmé Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If CallByName(Me, currentPeriph(x).equ, VbMethod, currentPeriph(x).param) = 1 Then
        choix = 1 + choix  ' Changement de niveau pour les pins concernées
    End If
    Il fallait évidemment que ça pose problème... :
    L'objet ne gère pas cette propriété ou cette méthode
    currentPeriph(x).equ contient un string, qui est le nom d'une fonction publique dans ma form. Quel est le problème alors ? Cela ne gère que les procédures ? Ou le test dans le If n'est pas bon ? ...

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

Discussions similaires

  1. [CR][VB6] Impression d'un état depuis VB
    Par sda dans le forum SDK
    Réponses: 3
    Dernier message: 06/02/2007, 17h27
  2. [VB6] mettre en commentaires...
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/04/2004, 15h15
  3. [VB6] [MDI] Signaler la fermeture d'une fille à la mère
    Par cpri1shoot dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/04/2004, 08h57
  4. Réponses: 1
    Dernier message: 22/08/2002, 17h00
  5. [Crystal Report][VB6] instruction PrintReport
    Par yyyeeeaaahhh dans le forum SDK
    Réponses: 4
    Dernier message: 29/07/2002, 14h58

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