Effectivement, tu ne peux pas faire :
Client.envoyerTouches(haut,bas,gauche,droite);
parce que client, tu l'as déclaré comme type, ce n'est pas un objet. En fait c'est comme si tu étais en train de faire des trucs du style :
1 2
| string:='Toto';
Integer:=5; |
Il faut donc que tu déclares la variable de type Client, puis que tu utilises la variable pour accéder à ta procedure :
1 2 3
| var MonClient:Client;
...
MonClient.envoyerTouches(haut,bas,gauche,droite); |
Déjà,je te conseilles de renommer ton Client en TClient pour qu'il soit un peut plus "type" dans, :
1 2 3
| Client = class
constructor creer(
... |
comme ça :
1 2 3
| TClient = class
constructor creer(
... |
Ensuite, il va falloir que tu déclares ta variable pour ta fiche :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| 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 }
MonClient:TClient;
end; |
Puis que tu utilises ton constructeur (dans le OnCreate de ta fiche par exemple) :
1 2 3 4
| procedure TForm1.FormCreate(Sender: TObject);
begin
MonClient:=TCLient.creer(UnNom,UnServeur,UnPort);
end; |
Détruire l'objet dans le FormDestroy :
1 2 3 4
| procedure TForm1.FormDestroy(Sender: TObject);
begin
MonClient.detruire;
end; |
Et comme ça tu pourras l'utiliser comme ceci :
1 2 3 4 5 6 7 8 9 10
| 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 ...
MonClien.envoyerTouches(haut,bas,gauche,droite);
end; |
Avec tout ça, ça devrait marcher... 8)
Partager