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] Aide pour acceder à un module d'un projet à partir d'un autre projet qui le référence


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 31
    Points : 33
    Points
    33
    Par défaut [VB6] Aide pour acceder à un module d'un projet à partir d'un autre projet qui le référence
    Bonjour à tous,
    Je suis entrains de reprendre l'application d'une grosse entreprise!
    Elle se découpe en énormément de projet.
    Elle a un projet référencer dans tous les autres (projet de type dll activex) il est composé d'un module de classe et d'un module!

    J'ai besoin d'ajouter une fonctionnalité à tous les projet du coup je voudrais l'ajouter dans ce projet (normal)

    simplement la fonctionnalité que je voudrais implémenter est un module et malheureusement à l'extérieur de ce projet je ne peux accéder qu'aux modules de classes!

    Du coup je me demande si il serait possible de faire comme C# : MonProjet.MonModule.MaMéthode();
    car ainsi ça m'éviterais d'avoir à implémenter un nouvel objets à chaque fois :s (sachant que j'ai besoin de ces méthodes à la fois dans des formulaires, dans des modules et dans des modules de classes or dans ces 2 derniers je ne pourrais pas implémenter mon objet qu'une seul fois il faudrait que je l'implémente dans chacune de méthodes (je trouve ça plutôt lourd non?)

    Merci d'avance!

    Je me tiens bien entendu à votre disposition pour tout complément d'information (malheureusement j'ai pttre un peut de mal à me faire comprendre)

    bonne journée à tous/toutes

  2. #2
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    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 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Bonsoir,
    Citation Envoyé par Dekdek3578 Voir le message
    Bonjour à tous,
    Je suis entrains de reprendre l'application d'une grosse entreprise!
    Elle se découpe en énormément de projet.
    Elle a un projet référencer dans tous les autres (projet de type dll activex) il est composé d'un module de classe et d'un module!

    J'ai besoin d'ajouter une fonctionnalité à tous les projet du coup je voudrais l'ajouter dans ce projet (normal)

    simplement la fonctionnalité que je voudrais implémenter est un module et malheureusement à l'extérieur de ce projet je ne peux accéder qu'aux modules de classes!
    ! ... moi de même.

    En quoi dans un projet de dll activeX tu ne peux accéder à un module standart
    ou alors une finesse m'échapperait-elle ?

  3. #3
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 31
    Points : 33
    Points
    33
    Par défaut
    Je ne suis pas habitué à VB6 je suis surtout un développeur C# ou Java RCP éclipse du coup ce sont des habitudes que j'ai et que je cherche à retrouver en VB6!

    Citation Envoyé par DarkVader Voir le message
    Bonsoir,
    ! ... moi de même.

    En quoi dans un projet de dll activeX tu ne peux accéder à un module standart
    ou alors une finesse m'échapperait-elle ?
    En faite c'est en dehors de cette dll activeX que je voudrais accéder au module standard contenue dedans!

    Exemple :
    Projet exe "A", Projet dll activeX "B"
    dans B ==> Module standard toto

    je voudrais que dans A je puisse accéder à toto!

    or dans A quand je fait B. je n'ai que la liste des classe contenue dans le module de classe et du coup toto qui est dans les modules standards n'apparait pas!

    J'espere que c'est un peut plus claire!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 243
    Points : 328
    Points
    328
    Par défaut
    Si j'ai bien compris, il faut que dans ton activex B, tu fasse une classe (qu'on va appeler "C") GlobalMultiUse. Ensuite, pour chaque procédure de ton module à accéder de l'extérieur, cette classe aura une méthode publique (de même nom ou non, peu importe, en général de même signature) qui ne fera que transmettre l'appel à la procédure et renvoyer le résultat.
    Ensuite, dans ton projet A, tu declare et instancie une variable globale du type de ta classe B.C

    Pour reprendre ton exemple, tu aura une classe "cstandard" ayant une procédure "toto" (de même signature que la procédure "toto" du module "standard").
    Le corps de cette méthode sera par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public function toto(byval x as variant, byval y as variant) as variant 'à toi de voir pour le type de retour
      toto=standard.toto(x,y)
    end function
    Comme ça, tu ne "redéclare" qu'une fois ta méthode et elle est accessible de l'extérieur.

    Après, il reste juste à prendre garde que les types des paramètres en entrée et de la valeur de retour soient bien accessible de l'extérieur.

    Ca va ? pas trop incompréhensible ?

  5. #5
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    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 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Précisions, avant toute compilation du projet Dll :
    1°) Sauvegarde de l'original (dès fois que ...)
    2°) Dans Propriétés du projet (Alt PP)
    => Composant : sélectionner Compatibilité binaire ...

  6. #6
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 31
    Points : 33
    Points
    33
    Par défaut
    Désolé pour le temps de réponse pour ma part! Je suis en stage que 2jours par semaines (les lundi et mardi)
    Merci 250rgv je ne connaissais pas du tout GlobalMultiUse je vais tester ça de suite je vous tiens au courant


    EDIT : Un grand merci c'est exactement ce que je cherchais à faire ça marche niquel
    Du coup malheureusement grâce à toi la seul réel partie dev de mon stage est terminée :'(
    C'est triste quand on est un développeur et qu'on aime ca d'avoir fait le seul boulot de dev d'un stage de 3-6mois en 2semaines :s
    Maintenant il me reste plus qu'à faire du copier coller de mon appel de mes méthodes et j'aurais finis il me reste juste plus que quelques dizaines de milliers de copier coller à faire XD ==> i18n d'une application découpée en plusieurs 100aines de projets(dll, activeX exe...)

    Bonne journée

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 243
    Points : 328
    Points
    328
    Par défaut
    Citation Envoyé par Dekdek3578 Voir le message
    C'est triste quand on est un développeur et qu'on aime ca d'avoir fait le seul boulot de dev d'un stage de 3-6mois en 2semaines :s
    Cela te laisse quelques semaines pour devenir un as du démineur, de la dame de pique etc...

    Citation Envoyé par Dekdek3578 Voir le message
    Maintenant il me reste plus qu'à faire du copier coller de mon appel de mes méthodes et j'aurais finis il me reste juste plus que quelques dizaines de milliers de copier coller à faire XD ==> i18n d'une application découpée en plusieurs 100aines de projets(dll, activeX exe...)
    Tu a peut-être moyen de faire un programme qui fasse tout ou partie à ta place ?
    J'imagine bien soft qui :
    • trouve toutes les occurences de ce que tu veut remplacer fichier par fichier
    • fait une copie de sauvegarde du fichier avant modif
    • remplace automatiquement tout ce qui peut l'être
    • fait un log de ce qui a été fait et de ce qu'il reste à faire manuellement (avec le nom de la proc/méthode/fonction et la ligne pour t'éviter de te fatiguer inutilement )
    • et enfin de t'envoyer un mail pour te tenir au courant.


    Comme ça tu n'a plus besoin de venir bosser qu'une fois qu'il a terminé (au pire, si tu a un smartphone, tu peut attendre à la terrasse du café du coin pour ne pas être trop loin)

  8. #8
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 31
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par 250rgv Voir le message
    Tu a peut-être moyen de faire un programme qui fasse tout ou partie à ta place ?
    J'imagine bien soft qui :
    • trouve toutes les occurences de ce que tu veut remplacer fichier par fichier
    • fait une copie de sauvegarde du fichier avant modif
    • remplace automatiquement tout ce qui peut l'être
    • fait un log de ce qui a été fait et de ce qu'il reste à faire manuellement (avec le nom de la proc/méthode/fonction et la ligne pour t'éviter de te fatiguer inutilement )
    • et enfin de t'envoyer un mail pour te tenir au courant.


    Comme ça tu n'a plus besoin de venir bosser qu'une fois qu'il a terminé (au pire, si tu a un smartphone, tu peut attendre à la terrasse du café du coin pour ne pas être trop loin)
    Tu rigoles mais j'ai fais un peut ça :p (normal il vaut mieux perdre 1/2 journée voir 1 journée de taf à faire ca que d'en perdre 10 a tout faire à la main ^^)
    En faite je fait l'i18n de toute leur appli (formulaire, module,module de classe) par le biais de fichier ini (key=value).
    Du coup j'ai déjà effectué une classe qui me permet automatiquement de récupérer tous les Caption,Text,ToolTipText et de les enregistrer sous le format key=value que j'ai définis au départ :p

    Malheureusement je ne peux pas faire la même pour les textes en dure dans l'appli et les chaînes de caractères, constituée « à la volée » dans les formulaires, modules et modules de classe .
    Je ne peux vraiment pas les automatisé :'( sinon effectivement je prendrais mon archos avec un bon film entre les main je lance l'automate pour 1 projet une fois qu'il est fini un petit buz et je passe au suivant...
    être payé à mater des film serais super (enfin salaire d'un stagiaire quoi mais c'est toujours mieux que rien ^^)

    Vivement que j'ai fini la chose logiquement des que c'est fait je devrais passé à une réel R&D (en C# cette fois si ==> mon terrain de prédilection XD)

    Encore merci pour le coup de main

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 243
    Points : 328
    Points
    328
    Par défaut
    De rien

  10. #10
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Si çà t'interesse, dans mes contributions, il ya un programme "Traducteur"
    Il est fourni avec ses sources vb6. Il permet d'extraie les chaines de textes dans du code vb.
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  11. #11
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 31
    Points : 33
    Points
    33
    Par défaut
    Merci j'irais faire un tour

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

Discussions similaires

  1. [Joomla!] Aide pour coder un module ou en modifier
    Par Ninja_En_Short dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 07/08/2008, 11h20
  2. Aide pour acceder a une information
    Par ggcourtois dans le forum ASP.NET
    Réponses: 1
    Dernier message: 11/05/2007, 09h15
  3. Besoin d'aide pour installer le module Encode::Detect
    Par bluecurve dans le forum Modules
    Réponses: 3
    Dernier message: 07/12/2006, 13h34
  4. [VB6]Aide pour mettre format date avec inputbox
    Par Geliwy77 dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 28/01/2006, 20h13
  5. [VB6]Aide pour systeme de MAJ automatique d'un programme
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 28/01/2006, 05h44

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