Bonjour, je travaille en Pascal avec le logiciel Lazarus pour créer un jeu type "mario"

Pour gérer le déplacement du personnage j'utilise le clavier d'ou l'utilisation de la méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
begin
      if (key = 'q') and (not Caribou.fkeydroite) then
        begin
             Caribou.fkeygauche := True;
             showmessage('coucou');
        end
     else if (key = 'd') and (not Caribou.fkeygauche) then
        Caribou.fkeydroite := True
     else if key = 'z' then
        Caribou.fkeyhaut := True;     
end;
J'ai d'abord pensé que l'erreur venait de mon programme, mais en fait je me suis rendue compte que ça ne détectait tout simplement pas quand j'appuyais sur les touches. ( En effet, j'ai inséré le showmessage('coucou'); pour voir s'il apparaissait quand j'appuyais sur q et rien ...).

Du coup je me demande si cela ne vient pas du fait que je lance mon programme avec un bouton :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
procedure TForm1.BtnlancerjeuClick(Sender: TObject);
begin
  Timer.Enabled := true;
  lancerjeu(); //procedure qui declenche le programme principal
end;
Est-ce que l'utilisation de ce bouton ne court-circuite pas l'utilisation de la méthode Keypress ?
Ma forme est visible et enabled.
Sur internet on parle d'utiliser Keypreview, mais je ne trouve pas cette méthode sur Lazarus.

Merci d'avance.