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++Builder Discussion :

Problème événement TIdUDPServer avec XE2


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2012
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 164
    Par défaut Problème événement TIdUDPServer avec XE2
    Bonjour,

    J'insère la composante Indy "TIdUDPServer" sur une forme (que je renomme "udpServer"), double clique sur l'événement "OnUDPRead", ce qui déclenche automatiquement le message d'erreur:

    Erreur dans le module form1: déclaration de méthode incorrecte

    La méthode incorrecte en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    void __fastcall udpServerUDPRead(TIdUDPListenerThread *AThread, TArray<System.Byte> AData,
              TIdSocketHandle *ABinding);
    Je contourne le problème en déclarant dans "private" de ma classe TForm1 la méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      void __fastcall My_udpServerUDPRead(TIdUDPListenerThread *AThread, TBytes AData,
                                      TIdSocketHandle *ABinding);
    que j'associe dans le constructeur à l'événement "OnRead" de mon udpServer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       udpServer->OnUDPRead = My_udpServerUDPRead ;
    Ça fonctionne nickel, mais ça fait un détail de plus à expliquer à mes étudiants .

    Il y a quelque chose à faire pour que XE2 permette le double-clic sur " "OnUDPRead"??

  2. #2
    Membre expérimenté
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2012
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 164
    Par défaut
    En tout cas, en charchant un peu plus, je me suis rendu compte que je suis pas le seul à avoir eu ce problème:

    https://forums.embarcadero.com/threa...threadID=43690

    L'omniprésent Remi Lebeau y propose un "workaround" semblable au miens. Je l'accuserai pas de plagiat, il l'a écrit avant moi.

    Et pour finir cette discussion avec moi-même , je pense que j'aurai pas bin bin le choix d'y aller dynamiquement, il y aurait un autre problème avec TIdUDPServer.Le composant ne semble pas tenir compte (en fait, j'en suis pas mal certain) des modifications apportées à la propriété "DefaultPort" pendant l'exécution.

    Donc, ma solution pour être capable de changer dynamiquement "DefautPort" et régler le problème de compilation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void TfrmMain::UDP_ResetServer(int listeningPort)
    {
      if (udpServer) // NULL au démarrage
        delete udpServer ;
     
      udpServer = new TIdUDPServer(this) ;
      udpServer->OnUDPRead = My_udpServerUDPRead ;
      udpServer->DefaultPort = listeningPort ;
      udpServer->Active = true ;
    }

Discussions similaires

  1. [WD14] problème de Table avec colonne image (évènement clic)
    Par yassine-art dans le forum WinDev
    Réponses: 10
    Dernier message: 23/04/2012, 09h58
  2. Problème EmbeddedWB avec XE2
    Par Teddy dans le forum Débuter
    Réponses: 10
    Dernier message: 28/12/2011, 18h43
  3. problème de variable avec événement
    Par seb-oulba dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/09/2006, 17h16
  4. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02
  5. Problèmes de versions avec Xalan, Xerces et Java
    Par honeyz dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 05/06/2003, 10h18

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