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.