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.NET Discussion :

Création d'événements, classes Events, delegués, methodes et accesseurs


Sujet :

VB.NET

  1. #1
    Membre du Club Avatar de trouthy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Points : 41
    Points
    41
    Par défaut Création d'événements, classes Events, delegués, methodes et accesseurs
    Les événements en VB.Net, leur création et leur exploitation voilà le sujet que je travaille depuis une dizaine de jours, plusieurs classes (create Events, sender, receiver) des délégués et des méthodes tout cela est bien compliqué même avec des extraits de code et des tutos, en deux mots je bloque!

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 171
    Points
    17 171
    Par défaut
    Salut
    Citation Envoyé par trouthy Voir le message
    .....en deux mots je bloque!
    Un peu court, des exemples avec du code déjà essayé ?
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre du Club Avatar de trouthy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Points : 41
    Points
    41
    Par défaut Oui bien sûr voir ci dessous je ne parviens pas à appeler la la Sub Start!
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    Public Class GenerateTextArgs ' déclaration de la classe pour la création de l'événement
            Inherits EventArgs
            Private myEventText As String = Nothing   'declaration d'un membre string attribut de la classe
            Public Sub New(ByVal theEventText As String) 'constructeur de la classe
                If theEventText Is Nothing Then
                    Throw New NullReferenceException()
                End If
                myEventText = theEventText
            End Sub
            Public Delegate Sub TextGeneratedEventHandler(ByVal sender As Object, ByVal e As GenerateTextArgs) 'déclaration du delegate pour générer l'événement
            Public ReadOnly Property EventText As String                                                        ' accesseur
                Get
                    Return Me.myEventText
                End Get
            End Property
            Public Event OnTextChanged As TextGeneratedEventHandler 'déclaration d'un objet event du type du delegate déclaré plus haut
            Public Sub New()
            End Sub
     
            Public Sub Start(theNumber As Integer)
                Dim i As Integer = 10
                While i < theNumber
                    Dim e As GenerateTextArgs = New GenerateTextArgs("Compteur = " & i.ToString())
                    If Not (e Is Nothing) Then
                        MsgBox("compteur:" & i.ToString)
                        RaiseEvent OnTextChanged(Me, e)
                    End If
                    Thread.Sleep(1000)
                    i = i + 1
                End While
            End Sub
        End Class
    	End Class

  4. #4
    Membre du Club Avatar de trouthy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Points : 41
    Points
    41
    Par défaut J'essaie également de m'en sortir avec cette version: bref je ne sais plus...les tutos, les exemples...
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Public Class StartEventArgs
    Inherits System.EventArgs
     
    End Class
     
    Public Class Sender       'décalartion de la classe charger ce creeer l'événement
            Public Event Start(ByVal sender As Object,
            ByVal e As GenerateTextArgs)
            '...
            Protected Overridable Sub OnStart(ByVal e As GenerateTextArgs)
                RaiseEvent Start(Me, e)
                OnStart(New GenerateTextArgs(Data))
            End Sub
        End Class
    	Public Class Receiver
    Friend WithEvents MySender As Sender
    Private Sub MySender_Start(ByVal sender As Object, _
    ByVal e As StartEventArgs) Handles MySender.Start
    '...
    End Sub
    End Class

  5. #5
    Membre du Club Avatar de trouthy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Salut
    Un peu court, des exemples avec du code déjà essayé ?
    Voilà le code dans sa version corrigé car en effet j'ai oublié quelques lignes; la méthode start est appelée avec obj2, par contre je ne parviens pas à instancier le délégué!
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    Imports System
    Imports System.Threading
    Public Class Form1
        Public Class GenerateTextArgs ' déclaration de la classe pour la création de l'événement
            Inherits EventArgs
            Private myEventText As String = Nothing   'declaration d'un membre string attribut de la classe
            Public Sub New(ByVal theEventText As String) 'constructeur surchargé de la classe
                If theEventText Is Nothing Then
                    Throw New NullReferenceException()
                End If
                myEventText = theEventText
            End Sub
     
     
            Public ReadOnly Property EventText As String                                                        ' accesseur
                    Get
                        Return Me.myEventText
                    End Get
                End Property
            End Class
        Public Class GeneratText
            Public Delegate Sub TextGeneratedEventHandler(ByVal sender As Object, ByVal e As GenerateTextArgs) 'déclaration du delegate pour générer l'événement
            Public Event OnTextChanged As TextGeneratedEventHandler 'déclaration d'un objet event du type du delegate déclaré plus haut
            Public Sub New()
            End Sub
            Public Sub Start(theNumber As Integer) 'declaration de la method
                Dim i As Integer = 10
                While i < theNumber
                    Dim e As GenerateTextArgs = New GenerateTextArgs("Compteur = " & i.ToString())
                    If Not (e Is Nothing) Then
                        MsgBox("compteur:" & i.ToString)
                        RaiseEvent OnTextChanged(Me, e)
                    End If
                    Thread.Sleep(1000)
                    i = i + 1
                End While
            End Sub
        End Class
     
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
     
            Dim obj2 As New GeneratText
            obj2.Start(15)
        End Sub

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/11/2006, 16h47
  2. [VB.Net] création des événements
    Par maniani dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/10/2006, 23h21
  3. pb création module de classes
    Par lbailler dans le forum Access
    Réponses: 2
    Dernier message: 17/08/2006, 14h07
  4. [POO] class abstraite et methode magic
    Par jeff_! dans le forum Langage
    Réponses: 14
    Dernier message: 24/01/2006, 23h19
  5. Création d'événements évenementiels /!\
    Par snooop34 dans le forum C++Builder
    Réponses: 3
    Dernier message: 24/11/2003, 14h52

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