Passer un delegate en parametre

Résolu
Messages postés
129
Date d'inscription
lundi 17 mars 2003
Statut
Membre
Dernière intervention
4 mars 2010
-
Messages postés
129
Date d'inscription
lundi 17 mars 2003
Statut
Membre
Dernière intervention
4 mars 2010
-
Bonjours,
Je voudrais passer un delegate en parametre a une de mes fonctions. le delegate en question serait toujours constitué des même parametres mais pas forcement de la même fonction.

Pouvez-vous me dire ce que je dois mettre comme type de varriable pour recevoir ce pointeur ?

Merci d'avance,
Jean-Pierre Sneyers

6 réponses

Messages postés
14851
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
25 janvier 2022
160
Bonjour

Juste une petite ommission :
Class str_ListeTask
        Public FieldNames As String
        Public FieldValues As String   'String with data
        Public Delegate Sub StandarDelegate(ByVal MyId As result)
        Public CallBackFunction as StandarDelegate
End Class

Le Delegate est juste un prototype, il faut un membre de la classe pour pouvoir faire une assignation.

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
73
possible d'utiliser AddressOf ?
Messages postés
129
Date d'inscription
lundi 17 mars 2003
Statut
Membre
Dernière intervention
4 mars 2010

non, déjà testé.
Messages postés
14851
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
25 janvier 2022
160
Bonjour

Sub toto (byval pDelegate as MonDelegate)

Toto (new MonDeleGate(adressof MaSub))

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
129
Date d'inscription
lundi 17 mars 2003
Statut
Membre
Dernière intervention
4 mars 2010

Avant tout, désolé pour le temps de réponse.

J'ai un peu avancé de mon coté : j'arrive à transmettre mon delegate mais je ne sais pas le stocker dans ma structure que voici :
<hr size= "2" width="100%" />    Class str_ListeTask
        Public FieldNames As String
        Public FieldValues As String   'String with data
        Public Delegate Sub StandarDelegate(ByVal MyId As result)
    End Class
    Private ListeTask As New System.Collections.Generic.Dictionary(Of Integer, str_ListeTask)
<hr size="2" width="100%" />voici ma fonction qui crée une nouvelle entrée dans ma collection Listetask et qui devrait donc y mettre le pointeur de ma fonction :
<hr size="2" width="100%" />    Public Function Add_Cmd(ByVal Prior As Boolean, ByVal CallBackfunction1 As str_ListeTask.StandarDelegate , ByVal Mode As Char, ByVal Modul As String, ByVal GroupeID As String, ByVal Condition As String, ByVal FieldNames As String, ByVal FieldValues As String) As Integer
        Dim MyId As Integer

        OldIdRequest + = 1
        MyId = OldIdRequest

        ListeTask.Add(MyId, New str_ListeTask)
        With ListeTask(MyId)
            .CallBackFunction = CallBackfunction1
            .FieldNames = FieldNames
            .FieldValues = FieldValues
        End With
<hr size="2" width="100%" />Je n'arrive donc pas à mettre le CallBackfunction1 dans la structure car il me dit que la structure est un type et il ne peut etre utilisé ainsi.

Avez-vous une idée pour me tirer de ce mauvais pas ?

Merci d'avance
Messages postés
129
Date d'inscription
lundi 17 mars 2003
Statut
Membre
Dernière intervention
4 mars 2010

Merci beaucoup, c'est parfait !!!