Chico75
Habitué
Bonsoir,
quand je compile mon code, j'obtiens l'erreur suivante : "Forme d'appel de méthode autorisée seulement pour les méthodes de classes"
à cette ligne :
[cpp]procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
gauche:= '0';
droite:= '0';
haut := '0';
bas := '0';
//différents actions sur gauche, droite, haut et bas ...
Client.envoyerTouches(haut,bas,gauche,droite);
end;[/cpp]
Cette fonction me sert à envoyer une chaîne à partir d'un client vers un serveur en utilisant Winsocks:
[cpp]procedure Client.envoyerTouches(haut,bas,gauche,droite:string);
begin
socket.sendStr('007 ' + haut + bas + gauche + droite +'#13#10');
end;[/cpp]
et voici mes déclarations :
[cpp]type
TForm1 = class(TForm)
Label1: TLabel;
Fleche_Haut: TImage;
Fleche_Gauche: TImage;
Fleche_Droite: TImage;
Fleche_Bas: TImage;
affichage: TLabel;
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
Client = class
constructor creer(
nom:String;
serveur:String;
port:String);
destructor detruire();
private
socket:TWSocket;
port:String;
procedure onDnsLookupDone(sender:TObject; error:Word);
procedure onSessionConnected(sender:TObject; error:Word);
procedure onSessionClosed(sender:TObject; error:Word);
public
connecte:Boolean;
procedure envoyerTouches(haut,bas,gauche,droite:string);
end;
var
Form1: TForm1;
gauche:string;
droite:string;
haut :string;
bas :string;
[/cpp]
Ma procédure est bien définie partout pareil, et je doute qu'une procédure du même nom soit définie dans uses standarts de Delphi. Je ne comprend vraiment pas d'où vient le problème :/
On m'a dit que "Client est une classe, pas un objet de TForm1.
dans la procedure de Tform1, le compilateur cherche un objet de Tform1, une variable globale ou une méthode, mais pas une procédure de classe d'objet."
Mais je ne comprend pas vraiment comment je peux corriger ça.
Il n'y aurait pas de bidouille me permettant d'utiliser cette procédure de Client dans cette procedure de Tform1 ?
quand je compile mon code, j'obtiens l'erreur suivante : "Forme d'appel de méthode autorisée seulement pour les méthodes de classes"
à cette ligne :
[cpp]procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
gauche:= '0';
droite:= '0';
haut := '0';
bas := '0';
//différents actions sur gauche, droite, haut et bas ...
Client.envoyerTouches(haut,bas,gauche,droite);
end;[/cpp]
Cette fonction me sert à envoyer une chaîne à partir d'un client vers un serveur en utilisant Winsocks:
[cpp]procedure Client.envoyerTouches(haut,bas,gauche,droite:string);
begin
socket.sendStr('007 ' + haut + bas + gauche + droite +'#13#10');
end;[/cpp]
et voici mes déclarations :
[cpp]type
TForm1 = class(TForm)
Label1: TLabel;
Fleche_Haut: TImage;
Fleche_Gauche: TImage;
Fleche_Droite: TImage;
Fleche_Bas: TImage;
affichage: TLabel;
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
Client = class
constructor creer(
nom:String;
serveur:String;
port:String);
destructor detruire();
private
socket:TWSocket;
port:String;
procedure onDnsLookupDone(sender:TObject; error:Word);
procedure onSessionConnected(sender:TObject; error:Word);
procedure onSessionClosed(sender:TObject; error:Word);
public
connecte:Boolean;
procedure envoyerTouches(haut,bas,gauche,droite:string);
end;
var
Form1: TForm1;
gauche:string;
droite:string;
haut :string;
bas :string;
[/cpp]
Ma procédure est bien définie partout pareil, et je doute qu'une procédure du même nom soit définie dans uses standarts de Delphi. Je ne comprend vraiment pas d'où vient le problème :/
On m'a dit que "Client est une classe, pas un objet de TForm1.
dans la procedure de Tform1, le compilateur cherche un objet de Tform1, une variable globale ou une méthode, mais pas une procédure de classe d'objet."
Mais je ne comprend pas vraiment comment je peux corriger ça.
Il n'y aurait pas de bidouille me permettant d'utiliser cette procédure de Client dans cette procedure de Tform1 ?