cs_chacha7611
Messages postés3Date d'inscriptionvendredi 9 novembre 2007StatutMembreDernière intervention 4 décembre 2007
-
4 déc. 2007 à 18:49
Oniria
Messages postés292Date d'inscriptiondimanche 14 mars 2004StatutMembreDernière intervention18 décembre 2014
-
6 déc. 2007 à 11:10
Bonjour à tous,
Je suis entrain de programmer un jeu en pascal.
J'aimerais savoir s'il été possible de récupérer une touche en mode graphique. Je m'explique : l'utilisateur doit appuyer sur une touche pour continuer à jouer. (l'équivalent du readln). Donc je voudrais savoir s'il est possible de le faire et de la récupérer sans repasser dans la petite fênetre ms-dos.
Merci d'avance,
Cordialement
WhiteHippo
Messages postés1154Date d'inscriptionsamedi 14 août 2004StatutMembreDernière intervention 5 avril 20123 4 déc. 2007 à 23:00
Bonsoir
Pour la gestion du clavier, tu as deux choses principales à faire :
- Dans les propriétés de ta fiche mettre KeyPreview à la valeur TRUE.
- Ajouter le code suivant dans l'événement OnKeyDown de ta fiche :
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
VK_NUMPAD4 :
begin
// Traitement si appui de la touche 4 du pavé numérique
end ;
end ;
end;
Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
fbalien
Messages postés251Date d'inscriptiondimanche 7 décembre 2003StatutMembreDernière intervention11 novembre 2016 5 déc. 2007 à 09:43
de memoire il y a la fonction readkey
qui permet de savoirs'il y a eu une touche pressée ou qui attend que l'on presse une touche
je sais plus bien çà date un peu ^_^
Oniria
Messages postés292Date d'inscriptiondimanche 14 mars 2004StatutMembreDernière intervention18 décembre 20143 6 déc. 2007 à 11:10
Bonjour,
La fonction keypressed retourne un booléen pour te dire si une touche a été appuyée (attention ce n'est pas une fonction blocante comme readln). et la fonction readkey te permet de connaitre la touche qui a été appuyée (elle ne lit qu'un seul caractére du buffer).
exemple pour faire quelque chose :
touche : char;
While touche <>chr(13) do // tu quitte la fonction si appui sur la touche entrée
begin
while keypressed=false do
begin
... tu fais ce que tu veux en attendant l'appui sur une touche (dessin etc...)
end;
touche:=readkey; // ou readkey(touche) je ne souvient plus trop
... tu réagit en fonction de ton appui sur la touche
end;