Passer un delegate en parametre

Résolu
narfight Messages postés 129 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 4 mars 2010 - 30 avril 2008 à 11:27
narfight Messages postés 129 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 4 mars 2010 - 13 mai 2008 à 15:36
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

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
13 mai 2008 à 15:20
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
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
30 avril 2008 à 11:39
possible d'utiliser AddressOf ?
0
narfight Messages postés 129 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 4 mars 2010
30 avril 2008 à 12:00
non, déjà testé.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
30 avril 2008 à 15:17
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
0

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

Posez votre question
narfight Messages postés 129 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 4 mars 2010
13 mai 2008 à 14:52
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
0
narfight Messages postés 129 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 4 mars 2010
13 mai 2008 à 15:36
Merci beaucoup, c'est parfait !!!
0
Rejoignez-nous