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

Composants VCL Delphi Discussion :

Impossible d'affecter un événement


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 22
    Points : 19
    Points
    19
    Par défaut Impossible d'affecter un événement
    Bonjour,
    avec ce code:

    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
     
    type TTestSocket = class
           Socket : TClientSocket;
           procedure Erreur(Sender: TObject; SocketError: Integer);
           procedure Create;
         end;
     
    ...
     
    procedure TTestSocket.Create;
    begin
      ...
      Socket := TClientSocket.Create(nil);
      Socket.OnError := Erreur;
    end;

    sur la ligne où j'affecte la procédure "Erreur" à Socket.OnError,
    j'obtiens le message suivant:

    "Erreur: types incompatibles 'TCustomWinSocket' et 'Integer' "

    Je ne comprends pas du tout... j'ai essayé plein de solutions trouvées avec la recherche sur le forum, mais rien n'y fait, impossible d'affecter un quelconque évènement de mon Socket...
    (j'ai aussi essayé de mettre mon Socket en variable à part, ça change rien du tout, toujours l'erreur de type).

    Quand je mets les deux en dehors de la classe (ou de l'objet, le problème ne change pas quand j'intervertis),

    comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var Socket : TClientSocket;
     
    procedure XOnError(Sender: TObject; SocketError: Integer);
    begin
    ...
    end;
     
    ...
      Socket.OnError := XOnError;
    J'obtiens l'erreur:
    "Types incompatibles: 'pointeur de méthode' et 'procédure régulière'". (en anglais: regular procedure).


    Je suis paumé, et donc complètement bloqué dans l'avancement de mon projet.
    Merci d'avance de votre aide.

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 874
    Points : 11 362
    Points
    11 362
    Billets dans le blog
    6
    Par défaut
    property OnErrorEvent: TSocketErrorEvent;

    TSocketErrorEvent = procedure (Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer) of object;
    il faut donc que ta procédure Erreur suive la même déclaration pour être du même type et affectable...

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    OUPS!

    J'ai regardé l'aide de delphi pour OnError,
    et je suis tombé sur ça:

    TSocketErrorEvent is the type for event handlers that respond when a socket reports an error.

    Unit

    Sockets

    Delphi syntax:

    type TSocketErrorEvent = procedure (Sender: TObject; SocketError: Integer) of object;
    J'avais donc la mauvaise syntaxe, j'aurais dû m'en douter!
    Merci !

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/08/2008, 08h22
  2. Réponses: 0
    Dernier message: 14/05/2008, 09h45
  3. Impossible d'affecter TADOQuery a TADOQuery
    Par lejert dans le forum Bases de données
    Réponses: 1
    Dernier message: 12/04/2007, 15h20
  4. [VB.NET]Impossible d'affecter un datasource au combobox !
    Par BalBalNet dans le forum Windows Forms
    Réponses: 11
    Dernier message: 03/11/2006, 10h01
  5. impossible d'affecter une valeur à un objet
    Par Dafbau dans le forum Access
    Réponses: 2
    Dernier message: 22/09/2006, 10h48

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