Dll personnalisé avec évènements et propriétés en vb6. (withevents, event, property, class, bibliothèque, référence)

DLL PERSONNALISÉ AVEC ÉVÈNEMENTS ET PROPRIÉTÉS EN VB6. (WITHEVENTS, EVENT, PROPERTY, CLASS, BIBLIOTHÈQUE, RÉFÉRENCE)

Programmation de la DLL

D'abord,il faut créer un projet DLL ACTIVEX.

Ensuite, vous devriez renommer la CLASS. C'est par elle que vous accédez aux fonctions, aux procédures, aux propriétés et aux évènements de la DLL. (Par exemple : CLASS_X)

Un détail important, la propriété Instancing de la CLASS doit être à 5 -MultiUse. Sinon, pas d'évènements dans le programme CLIENT.

Note : Dans le projet CLIENT, les propriétés de la DLL seront visibles dans l'explorateur d'objet de Visuel Basic. Vous pouvez écrire un petit texte qui explique chaque Fonctions, Procédures, Propriétés et Évènements de votre DLL. (MENU : Outils/Attributs de procédure)

Les Propriétés

Les propriétés sont simplement une façon de lire ou de Modifier les variables de la DLL. Elles fonctionnent un peu comme une fonction. En lecture, elles renvoient une valeur par leur nom. En écriture, elles reçoivent une valeur par un paramètre.

Alors pourquoi ne pas simplement déclarer les variables PUBLIC? Simplement pour choisir de ne permettre que l'écriture ou la lecture. En plus, elles permettent d'ajouter du code lorsqu'on y accède. Par exemple, si on veut qu'à la lecture d'une longueur, la valeur d'une variable soit automatiquement mise à jour.

Exemple :

'
'Lecture du contenu de la variable 'Valeur1'
Public Property Get P_Valeur1 () As Integer
    P_Valeur1 =  Valeur1
End Property

'Écriture dans la variable 'Valeur1'
Public Property Let P_Valeur1 (ByVal NouvelleValeurAsInteger)
    Valeur1 = NouvelleValeur
End Property

Les procédures et les fonctions

Les procédures et les fonctions fonctionnent de la même manière que dans un projetEXE STANDARD.Je ne vais donc pas entrer dans les détails à part qu'il faut les déclarer PUBLIC pour qu'elles soient accessibles dans l'application CLIENT.

Les évènements

Enfin,nous arrivons aux évènements.
D'abord, il faut les déclarer dans l'entête de notre CLASS :
EVENT nomEvenement( [Paramètres])

Ensuite,vos évènements n'arriveront jamais si vous ne les déclenchez pas. Le déclenchement se fait dans une procédure, une fonction ou une propriété. L'instruction est simple :
RaiseEvent nomEvenement([Paramètres] )

'
'********************************EXEMPLE******************************
           EVENT FinDeBoucle(ByValVariable as string)

           PUBLICSUBPARCOURIR ()
                       DO
                                 'INSTRUCTIONS
                       LOOP UNTIL'CONDITION'
                                 'C'est la que l'évènement est déclenché
                  RaiseEvent FinDeBoucle
           END SUB

'**************************************************************

Utilisation de la DLL dans un programme CLIENT

D'abord,vous devez permettre au programme CLIENT de communiquer avec la DLL :

  • Vous devez ajouter votre DLL personnalisé dans les références du projet CLIENT :

Allez dans le menu :Projet/Références, et ajoutez votre DLL (cochez)

  • Créez une variable avec, pour type, la CLASS de votre DLL : DIM lien as CLASS_X
  • Avant de pouvoir utiliser la DLL, vous devez la définir. Je vous conseille de le faire dans FORM_LOAD. Mais vous pouvez la définir ou vous voulez.

Exemple :

'
Private Sub Form_Load()
    'Définir le lien avec la DLL
    Set lien  =New CLASS_X
End Sub

Les Propriétés

Les propriétés d'une DLL sont disponibles en lecture, en écriture ou les deux. Elles sont utilisables comme n'importe quelle autre propriété. Comme, par exemple, la propriété Caption d'une Étiquette (Label).

Pour lire une propriété :
Variable = lien.Propriete_X

Pour écrire dans unepropriété :
lien.Propriete_X =Variable

Les procédures et les fonctions

Les procédures et les fonctions fonctionnent de la même manière que dans un projet EXE STANDARD.

lien.Procedure_X ([Paramètres])

Les évènements

Les évènements fonctionnent de la même que ceux de n'importe quel objet standard. Après la définition de votre variable lien (voir page 4), il suffit de sélectionner votre variable de liaison dans la LISTE D'OBJET.La liste de vos évènements sera alors affichée dans la LISTE D'ÉVÈNEMENT.

Exemple d'une DLL

'
    Event CalculeTermine()
    Event ResultatOverflow()

    Dim Valeur1 As Integer
    Dim Valeur2 As Integer
    Dim Resultat As Integer

'Valeur1+ Valeur2 -> Resultat

Public Sub Additionner()
'Vérifier si le résultat est trop grand pour une variable INTEGER
If (Valeur1 + Valeur2) > 5000 Then
    RaiseEvent ResultatOverflow     'Provéquer l'évènement ResultatOverflow
    Exit Sub                                      'Quitter la procédure
End If

'Faire le calcul
Resultat = Valeur1 + Valeur2

'Provoquer l'événement CalculeTermine
RaiseEvent CalculeTermine
End Sub
'_____________________________________________________

'Lecture du contenu de la variable 'Valeur1'
Public Property Get P_Valeur1() As Integer
    P_Valeur1=  Valeur1
End Property

'Écriture dans la variable 'Valeur1'
Public Property Let P_Valeur1(ByVal NouvelleValeurAsInteger)
    Valeur1 = NouvelleValeur
End Property
'_____________________________________________________

'Lecture du contenu de la variable 'Valeur2'
Public Property Get P_Valeur2() As Integer
    P_Valeur2 = Valeur2
End Property

'Écrituredans la variable 'Valeur2'
Public Property Let P_Valeur2(ByVal NouvelleValeurAsInteger)
    Valeur2 = NouvelleValeur
End Property
'_____________________________________________________

'Lecture du contenu de la variable 'Resultat'
Public Property Get P_Resultat() As Integer
    P_Resultat = Resultat
End Property

Exemple d'un programme CLIENT

'
Private WithEvents lien As CLASS_X

Private Sub cmdCalculer_Click()

    'Écrire la première valeur dans la DLL
    lien.P_Valeur1  = Val(txtValeur1.Text)

    'Écrire la Deuxième valeur dans la DLL
    lien.P_Valeur2 = Val(txtValeur2.Text)

    'Faire le calcul (Valeur1 + Valeur2 -> Resultat)
    lien.Additionner

 '*l'évènement lien_CalculeTermine  est provoqué par la DLL à la fin du calcul
End Sub

Private Sub Form_Load()

    'Définir le lien avec la DLL
    Set lien = New CLASS_X
End Sub

Private Sub lien_CalculeTermine()

    'Aficher le résultat
    MsgBox lien.P_Resultat
End Sub

Private Sub lien_ResultatOverflow()

    'Le résultat est limité à 5000 (Choix arbitraire)
    MsgBox "Résultat plus Grand que 5000."
End Sub

Ce document intitulé « Dll personnalisé avec évènements et propriétés en vb6. (withevents, event, property, class, bibliothèque, référence) » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Rejoignez-nous