Plusieurs fonctions en une

Résolu
PatBlarg Messages postés 67 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 11 mai 2010 - 7 avril 2009 à 19:50
PatBlarg Messages postés 67 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 11 mai 2010 - 8 avril 2009 à 14:09
Bonjour, je veux me créer une bibliothèque de fonctions qui vont me servir dans plusieurs projets, et afin de simplifier le tout, je me demande si il était possible de regrouper plusieurs functions en une? Je m'explique :

Disons que j'ai deux fonctions très très simple (c'est complètement inutile comme fonctions, mais le principe est là)

    Public Function Gauche(ByVal Chaine As String, ByVal Position As String) As String
        Gauche = Left(Chaine, Position)
    End Function

    Public Function Compter(ByVal Chaine As String) As Integer
        Compter = Len(Chaine)
    End Function

Est-ce que je pourrais les regrouper sous une fonction "TraitementChaine" par exemple, que j'appellerais d'une façon semblable :
TraitementChaine.Compter("Chaine")
ou TraitementChaine.Gauche("Chaine",2)
???

Pas nécessairement de cette façon, mais quelque chose de semblable quoi.

Merci de votre aide!

10 réponses

cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
7 avril 2009 à 20:31
Faut utiliser les classes, alors.
Et en tête de module tu mets "Dim MonInstanceDeMaClasse = New MaClasse"
Tu accèderas à une fonction via "MonInstanceDeMaClasse.MaFonction"
Evidemment, tu peux nommer ta classe "cls_MaClasse" et son instance "MaClasse", c'est plus court et plus lisible !
3
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
8 avril 2009 à 01:46
En fait, t'as raison : c'est bien "Dim MonInstance As New cls_MaClasse"
Pour t'en servir, tu peux, par exemple, mettre cette déclaration dans un module.
Tu pourras alors accéder à ces objets à partir de partout ...
3
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
7 avril 2009 à 20:05
C'est du VB6 ? Si oui, tu t'es planté de catégorie ...
0
PatBlarg Messages postés 67 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 11 mai 2010
7 avril 2009 à 20:08
Eeeuh, si c'était du VB6, j'aurais certainement pas écrit dans la section VB.Net
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PatBlarg Messages postés 67 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 11 mai 2010
7 avril 2009 à 20:17
Et pour l'histoire de créer un module, eeeuh, c'est bien beau, mais quand j'appelle ma fonction, je ne l'appelle pas par TraitementChaines.Compter(...) mais seulement par Compter(...).

Ça me faciliterais la tâche si je pourrais regrouper tout ca dans une même fonction, vu que dans un programme sur lequel je travaille, j'ai présentement environ 20 fonction pour charger différentes informations et 20 autres fonction pour enregistrer ces mêmes informations. Mon but serait de faire quelque chose comme Facture.Charger(paramètres) ou Factuer.Sauver(paramètres)
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
7 avril 2009 à 20:24
Euh désolé pour la remarque ... C'est courant, en plus !
Non mais tu peux aussi appeler tes fonctions via NomDuModule.NomDeLaFonction.
Y'a que ceux qui programment comme des porcs qui appellent les fonctions dans des modules directement !
0
PatBlarg Messages postés 67 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 11 mai 2010
7 avril 2009 à 20:26
Bah je suis un porc alors =/

Mais comment je fais si je veux avoir deux fonctions du mêmes noms, mais qu'ils ne soient accessible qu'en passant par le nom du module par exemple?
0
PatBlarg Messages postés 67 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 11 mai 2010
7 avril 2009 à 20:49
Est-ce que c'est possible que ça soit en fait "Dim MonInstance As New cls_Classe"
( un = à la place du As)

Et si je comprend bien, je dois mettre ça en entête partout où je veux utiliser la fonction?
0
PatBlarg Messages postés 67 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 11 mai 2010
7 avril 2009 à 21:42
Ok, bon je crois avoir compris (en tout cas, ya quelque chose qui fonctionne!)

Merci beaucoup, ça va m'aider à mettre tout ça un peu plus ordonnés.
0
PatBlarg Messages postés 67 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 11 mai 2010
8 avril 2009 à 14:09
Ok! Merci! En même temps, ça m'a aidé à simplifier autres choses les classes. J'avais 3 sub presque identiques où j'enregistrais les résultats dans 3 séries de variables différentes, et il semblerait que en déclarait la même classe 3 fois mais de nom différent, j'obtiens le même résultats, avec seulement une sub. C'est génial les class o.O
0
Rejoignez-nous