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

Web & réseau Delphi Discussion :

Index de méthode de message dupliqué


Sujet :

Web & réseau Delphi

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 38
    Par défaut Index de méthode de message dupliqué
    Bonjour à tous, j'ai un problème qui me hante en ce moment.

    Alors j'ai récupérer une apllication (ICS) pour une communication via des sockets utilisant le composant TWSocket.

    Alors le truc est que il y a deux fiches (client et serveur) et si je les lance séparement ça fonctionne bien.

    Maintenant moi j'ai réunit ces 2 fichiers pour en faire qu'un seul.

    Le problème est que lorsque je compile il me met l'erreur suivante :
    Index de méthode de message dupliqué

    L'erreur est du aux 2 déclarations suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    procedure WMSendBlock(var msg: TMessage); message WM_SENDBLOCK;
    procedure WMListen(var Msg: TMessage); message WM_LISTEN;
    Je sais que c'est du au fait que je déclare 2 fois 'message' mais je sais pas à quoi 'message' correspond donc je ne sais pas comment remédier à ce problème.

    J'èspère avoir été compréhensible.

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 121
    Par défaut
    par hazard WM_SENDBLOCK = WM_LISTEN
    donc Client et Serveur ne peuvent pas être mis dans le même objet ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 38
    Par défaut
    , je ne comprend pas ce que tu me demande

  4. #4
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par lemarquisien Voir le message
    , je ne comprend pas ce que tu me demande
    vérifie la valeur des deux constantes (WM_SENDBLOCK et WM_LISTEN)...à priori elles sont identiques et c'est pour cela que Delphi refuse la compilation.

    si elles sont identiques, tu ne peux avoir qu'une seule procédure qui traite les deux événements...reste à savoir comment on distingue un SENDBLOCK d'un LISTEN
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 38
    Par défaut
    effectivement, merci pou l'info, j'avais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WM_SENDBLOCK = WM_USER + 1; 
    WM_LISTEN = WM_USER + 1;
    par contre je comprend pas à quoi ca sert.

    J'ai remplacé (au pif) par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WM_SENDBLOCK = WM_USER + 1; 
    WM_LISTEN = WM_USER + 2;
    Il ne me met plus ce problème mais j'ai un autre problème. Je ne peut donc pas tester si ça fonctionne ...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 38
    Par défaut
    Cependant mon autre problème est le suivant (ci quelqu'un peut m'aider) :
    Déclaration Forward ou external non satisfaite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure LogServ(LogType: TLogType; const ToLog: String);

  7. #7
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    Cela signifie simplement que la procédure LogServ est absente de la partie implementation.

    @+ Claudius

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 38
    Par défaut
    Merci à tous pour votre aide,

    la solution de mon 2ème problème était qu'il fallait que je déclare ma fonction en dehors de private et public (en externe) après 'end;'
    c'est à dire mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      TMainForm = class(TForm)
        MainMenu: TMainMenu;
        ...
        procedure .....
      public
        procedure .....
      public
        procedure .....
      end;
        procedure LogServ(LogType: TLogType; const ToLog: String);
    au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      TMainForm = class(TForm)
        MainMenu: TMainMenu;
        ...
        procedure .....
      public
        procedure .....
      public
        procedure .....
        procedure LogServ(LogType: TLogType; const ToLog: String);
      end;

  9. #9
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    c'est au choix...soit tu déclares une simple procédure, soit c'est une méthode et dans ce cas il faut ajouter "TMainForm." devant son nom dans la partie Implementation
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

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

Discussions similaires

  1. Message d'erreur : Index XSQLDA hors limites
    Par loupiac dans le forum SQL
    Réponses: 2
    Dernier message: 31/12/2005, 10h08
  2. Réponses: 2
    Dernier message: 13/11/2005, 21h48
  3. Message 'Duplicate index entry'
    Par Poulou dans le forum Administration
    Réponses: 13
    Dernier message: 04/05/2004, 15h57

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