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

C++/CLI Discussion :

[2.0] Comment définir une interface qui expose un événement ?


Sujet :

C++/CLI

  1. #1
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut [2.0] Comment définir une interface qui expose un événement ?
    Bonjour,

    actuellement, j'ai une interface qui expose un événement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public interface class IThirdParty
    {
        event EventHandler ^ UpdateProgress;
    };
    Maintenant, je cherche à définir une interface qui expose un événement qui utilise un délégué différent de EventHandler, je veux utiliser mon propre délégué.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    delegate void ThirdPartyProgressEventHandler(Object ^ sender,
     ThirdPartyProgressEventArgs ^ e);
     
    public interface class IThirdParty
    {
        event ThirdPartyProgressEventHandler^ UpdateProgress;
    };
    Je n'ai rien trouvé de très clair sur ce sujet qui puisse m'aider pour le moment. Où définir le délégué ? Comment utiliser ce délégué dans la classe implémentant l'interface ? ...
    Pas de questions techniques par MP

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Je ne vois aucun souci tel que tu le codes dans l'exemple donné. C'est souvent ainsi que j'implémente mes délégués à l'extérieur du type et dans la même assembly bien sûr que la classe ici ThirdPartyProgressEventArgs par exemple

    Code : 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
     
    public class ThirdPartyProgressEventArgs
    {
       //blablabla
    };
     
    delegate void ThirdPartyProgressEventHandler(Object ^ sender,
     ThirdPartyProgressEventArgs ^ e);
     
    public interface class IThirdParty
    {
        event ThirdPartyProgressEventHandler^ UpdateProgress;
    };
     
    // puis la classe abstraite qui implémente IThirdParty
    // etc...
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    C'est bien comme ca que j'avais fait, mais je viens de comprendre l'origine du problème. En fait, le message d'erreur que j'avais à la compilation, lorsque j'ai testé avant de poster, n'était pas très explicite.
    error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'ThirdPartyProgressEventHandler'
    error C4430: spécificateur de type manquant - int est pris en compte par défaut.
    error C2143: erreur de syntaxe : absence de ';' avant '^'
    En fait c'est parce que dans la déclaration du mon délégué, j'avais oublié un caractère dans le nom de ce dernier, mais je ne cherchais pas du tout à cet endroit vu le message d'erreur et surtout vu où il pointait. C'est à devenir chèvre des fois

    // puis la classe abstraite qui implémente IThirdParty
    Dans mon cas ce n'est pas encore nécessaire, l'interface doit suffir
    Pas de questions techniques par MP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/05/2015, 11h16
  2. Réponses: 1
    Dernier message: 06/12/2014, 16h25
  3. Comment créer une fonction qui attend un événement souris ?
    Par SoftAbdou dans le forum Windows Forms
    Réponses: 5
    Dernier message: 18/06/2009, 01h40
  4. Réponses: 3
    Dernier message: 21/01/2004, 08h47
  5. [VB6] Comment faire une fonction qui renvoie 2 résultats
    Par tazarine dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/01/2004, 00h13

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