Liste d'appel de dll avec des variables Utilisateur

cf38 Messages postés 4 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 1 octobre 2007 - 19 sept. 2007 à 21:55
cf38 Messages postés 4 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 1 octobre 2007 - 1 oct. 2007 à 22:17
Bonjour,
Je développe un projet  composé de plusieurs exécutables (question de taille). Chacun de ces exécutables fait appel à un ensemble de sous-programmes et fonctions que je voudrais rassembler dans une dll (pour des questions pratiques de montée de version ). Or, les listes d'appel de plusieurs de ces modules comportent des variables définies par l'utilisateur.
Où et comment doit-on déclarer ce type de variables pour que leurs portées soientt valides dans le code des exécutables et dans la dll ?
Par avance merci de votre aide   

cf38

3 réponses

DblK Messages postés 51 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 2 octobre 2008
20 sept. 2007 à 13:13
Je pense que si dans ta classe tu défini une propriété avec get et let tu pourras via ton programme faire un let avec la valeur défini par l'utilisateur, et toutes tes méthodes (sub/fonction) feront un get sur ladite propriété quand elles en auront besoin.

J'espère avoir été suffisament clair.

DblK
0
cf38 Messages postés 4 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 1 octobre 2007
21 sept. 2007 à 21:46
Merci pour l'info. Je pense avoire compris le principe Je vais faire l'essai sur un exemple très simple. Si ça marche, je le rajoute à cette discussion.... A+
0
cf38 Messages postés 4 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 1 octobre 2007
1 oct. 2007 à 22:17
'  Fichier LIBRAIRIECMS.VBP

Option Explicit
' -----------------------------------------------------------------
' Si la propriété Instancing  de la Classe Identité n'apparait pas :


 'Pour faire apparaître la propriété Instancing de Identité, il faut déclarer le projet comme "dll ActiveX"
' à l'aide du menu de Vb "Projet" + "Propriété de Projet1" et aucun objet de démarrage
' La propriété de la Classe Identite "Instancing" apparait alors dans la fenêtre des propriétés; il faut l'initialiser à 6 - GlobalMultiUse
' GlobalMultiUse permet à d'autres applications de créer des objets à partir de la classe.
' Une instance de votre composant peut fournir un nombre quelconque d'objets créés de cette manière.
' Les propriétés et les méthodes de la classe peuvent être invoquées comme s'il s'agissait
' simplement de fonctions globales.


' Créer la librairie:
'
' - Pour initialiser cette variable, il faut déclarer le type de projet (menu de l'éditeur VB: "Projet" + "Propiété du Projet")
'   comme dll activeX. Puis faire Fichier" + "Créer projet1.dll" et indiquer le nom du fichier LibrairieCMS
' - Pour créer la dll, via le menu de l'éditeur VB, faire "Fichier" + "Créer LibrairieCMS.dll" (dans le répertoire de travail)
' - Fermer le fichier source
' -----------------------------------------------------------------


'X est une variable d'un type déclaré par l'utilisateur et n'est pas visible
' depuis Module1.
Private Type QUELQUUN
    Nom As String
    Prenom As String
End Type
Private X As QUELQUUN


' Retourne au module principal la variable Nom de X  par une instruction de type
'  ...= Moi.Nom
Public Property Get Nom() As String
Nom = X.Nom
End Property


' Retourne au module principal la variable Prenom de X par une instruction de type
' ... = Moi.Prenom
Public Property Get Prenom() As String
Prenom = X.Prenom
End Property


' affecte une valeur à la variable Nom de X  par une instruction de type
' Moi.Nom = ... dans le module principal
Public Property Let Nom(ByVal Chaine As String)
X.Nom = Chaine
End Property


' affecte une valeur à la variable Prenom de X au module par une instruction de type
' Moi.Prenom = ...
Public Property Let Prenom(ByVal Chaine As String)
X.Prenom = Chaine
End Property


' Fonction qui se présente comme une méthode
Public Function EtatCivil() As String
EtatCivil = " Monsieur " & X.Prenom & " " & X.Nom
End Function

'  Fichiers PROJET1.VBP et MODULE1.VBP
Option Explicit
' "LibrairieCMS.dll" est le nom de la dll (dans le même répertoire que l'application)
' "Identite" est le nom de la classe
' Pour référencer la librairie, faire dans le menu principal "Projet" + "Reférences" +
' "Parcourir"  et sélectionner la dll
' Veiller à ce que le nom de la dll soit cochée dans la liste des références.
' Pour créer Projet1.exe (application principale qui fait appel à LibrairieCMS.dll) utiliser le menu "Projet" + propriété du Projet"
' dans la fenêtre, déclarer "Exe Standard" comme type et Sub Main comme "objet de démarrage"
' Puis faire "Fichier" et Créer Projet1.exe


Sub Main()
Dim Moi As Object
' Déclaration de variable
Set Moi = CreateObject("LibrairieCMS.Identite")

' Affectation de propriété
Moi.Nom = "NAIMARD"
Moi.Prenom = "Jean"


' Utilisation d'une fonction
MsgBox Moi.EtatCivil()
End Sub


Désolé pour cette piètre contribution, mais c'est le résultat de 2 jours d'agitation neuronique....(notez l'absence de "s" dans le mot neuronique)
Ne rêvons pas, l'agitation n'est pas un signe d'intelligence, mais de crispation !

CF 38 
0
Rejoignez-nous