Complément d'information sur l'utilisation de Callbyname

Résolu
cs_stun43 Messages postés 18 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 9 septembre 2008 - 15 avril 2008 à 10:12
cs_stun43 Messages postés 18 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 9 septembre 2008 - 15 avril 2008 à 10:56
Bonjour à tous.

Suite à mon problème d'hier concernant la génération dynamique d'appel de fonction, j'aimerais vous demander un petit complément d'information :

L'exemple que vous m'avez donné et que l'on retrouve typiquement consiste à appeler la fonction souhaitée par la méthode VBmethod dans l'objet "me". (normalement jusque là, je ne dois pas trop me tromper :-) )

Dans mon cas personnel, ces fonctions sont actuellement répartie dans 6 autres modules (cela du à leur longueur).

Je me suis donc penché sur la façon dont je pouvait les appeler, voici les solutions que j'ai trouvée :

1) [Mode usine à gaz]
Dans le module ou j'emploie la fonction callbyname, je fais une suite de sub qui appèleront les véritables fonctions contenues dans les autres modules...usine à gaz

2) D'une manière un peu plus propre, je supprime les 6 modules actuels et créé 6 modules de classe...
Cela me permet d'appeler directement mes fonctions dans le callbyname en me servant des objets "class".
Malheureusement, le fait que les fonctions soient réparties en 6 modules m'obligera de créer une petite procedure intermédiare determinant dans quel module de classe se trouve la fonction à appeler...

Le premier cas me semble pir que la solution que j'emploie actuellement, le second est envisageable mais je trouve qu'il tourne en rond pour pas grand chose.

Qu'en penssez vous? N'y aurait il pas moyen de déclarer tout les modules tel un gros objet? ^^

De plus je n'ai pas testé moi même la limite de nombre de caractères dans chaque fichiers modules, est-ce obligatoire, ne pourrais-je pas créer un immense fichier class qui résoudrait mes problèmes?

Merci à vous,

Stun

4 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
15 avril 2008 à 10:18
Salut,
Et pourquoi ne pas Creer UN SEUL module de classe contenant TOUTES tes procédures de calcul?

Dim oCalcul As New ClsCalcul
   Call CallByName(oCalcul, "Calcul" & Format(IdCalcul, "000"), VbMethod)
, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
3
cs_stun43 Messages postés 18 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 9 septembre 2008
15 avril 2008 à 10:32
Et bien en fait, mon tuteur m'a informé qu'il avait été géné par une limite de nombre de caractères dans ses modules, cela dit, je vais essayer d'appliquer cette méthode, je vous tien au courant dans la journée.

Merci de votre réponse.

Stun

#############################################

####                        Débutant en VB6                        ###

#############################################
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
15 avril 2008 à 10:44
limite du nombre de caracères :o

et beh !

y'a surement moyen de factorsier du code qui lui ira dans un module standard
3
cs_stun43 Messages postés 18 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 9 septembre 2008
15 avril 2008 à 10:56
En effet, je n'ai pas vu de limite, mon tuteur étant en réunions, je ne peut pas lui demander... Le programe semble fonctionner (ormis un tableau dynamique qui n'en fait qu'a sa tête).

Quoi qu'il en soit, je vous remercie grandement de votre aide :-)

Bonne journée à vous!

Stun

##############################################

####                        Débutant en VB6                        ###

##############################################
3