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 :

Utilisation de "Friend"


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Utilisation de "Friend"
    Bonsoir à tous.

    Désolé, je vais sans doute paraître bien ringard, mais je me lance dans la programmation d'objets en VB6 (défense de rire !)

    Mon projet (essentiellement didactique) a pour but de faire un objet "Ini" à partir d'un fichier ".ini", constitué d'une série de "sections", chaque section contenant une série de "variables" (j'ai vu, un jour, en parcourant je ne sais plus quel forum, qu'il existait un truc du genre, mais c'est mon projet "pour apprendre").

    J'ai donc fait un nouveau projet dans lequel j'ai déclaré divers modules de classe : chacun définit un objet, l'objet principal contenant une collection de sections, chaque section ayant un nom et contenant une collection de variables, et chaque variable étant définie par un nom et une valeur.

    Je suis content d'avoir réussi à faire ce que je voulais, mais, au moment de structurer mon code de façon à pouvoir le réutiliser dans d'autres programmes (c'est à ça que servent les objets), je tombe sur un bec : il y a une ou deux routines que j'utilise dans plusieurs modules de classe : je les ai déclarées "public" dans un module simple de mon projet, mais je voudrais que ce module disparaisse. J'ai donc tenté de les transférer dans le module de classe principal de mon projet, et les déclarant "Friend" (j'ai lu la doc...). Eh bien ça ne marche pas.

    Merci à ceux qui voudront bien tenter de m'expliquer ce que j'ai manqué.

    AMIcalement.

  2. #2
    Membre régulier
    Bon, personne ne répond...

    Je tente de présenter le problème autrement : mon projet comprend plusieurs modules de classe, puisque je veux définir un objet contenant plusieurs objets "imbriqués".*

    Or, pour mes traitements, j'ai deux fonctions tout à fait classiques que j'appelle depuis plusieurs de ces modules de classe. Pour la réalisation du projet, j'ai placé ces fonctions dans un module standard, en les déclarant "Public", ça marche parfaitement.

    Mais, pour pouvoir réutiliser cet objet, j'aurais souhaiter faire l'économie de ce module "standard". J'ai donc tenté de mettre ces fonctions dans le code du module de classe de l'objet parent, en les déclarant "Friend". Mais ça ne marche pas : lorsqu'elles sont appelées depuis d'autres modules de classe, j'ai le message "Procédure Sub ou Function non définie".

    Je demande au groupe si cela est normal, car cela me semble en contradiction avec ce qu'on peut lire dans la doc (par exemple en cliquant dans "Friend", puis "F1"). Mais je dois reconnaitre que le texte qu'on obtient alors est assez obscure...

    En espérant m'être mieux fait comprendre

    AMIcalement;

###raw>template_hook.ano_emploi###