Salut, je t´ai pondu un petit code qui devrait correspondre à tes besoins.
C´est une méthode classique qui gère les évènements clavier:
----
unit uMaProcClavier;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
lblKey: TLabel;
procedure FormCreate(Sender: TObject);
procedure MaProcClavier(var Msg: TMsg; var Handled: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.MaProcClavier(var Msg: TMsg; var Handled: Boolean);
begin
/ /Ici
IF Msg.message = WM_KEYDOWN THEN
BEGIN
lblKey.Caption:= ´Touche appuyée : ´;
CASE Msg.wParam OF
VK_ESCAPE: Application.Terminate;
VK_UP: lblKey.Caption:= lblKey.Caption + ´HAUT´;
VK_DOWN: lblKey.Caption:= lblKey.Caption + ´BAS´;
VK_LEFT: lblKey.Caption:= lblKey.Caption + ´GAUCHE´;
VK_RIGHT: lblKey.Caption:= lblKey.Caption + ´DROITE´;
{POUR TON PROGRAMME TU ADAPTES EN FONCTION DE TON IMAGE}
{VK_UP: TonImage.Top:= TonImage.Top - 1}
{VK_DOWN: TonImage.Top:= TonImage.Top + 1}
{VK_LEFT: TonImage.Left:= TonImage.Left - 1}
{VK_RIGHT: TonImage.Left:= TonImage.Left + 1}
END;
END;
IF Msg.message = WM_KEYUP THEN
lblKey.Caption:= ´Aucune touche appuyée´;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage:= MaProcClavier;
end;
end.