IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Lire les touches de direction [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Par défaut Lire les touches de direction
    Bonjour

    j'essaie de faire un jeu (une sorte de tetris... ) avec Lazarus
    Pour déplacer un objet j'utilise des tbutton qui appellent des procédures. Procédures qui font des x:=x+1; par exemple pour le bouton droit.

    mais il faut cliquer sur ces boutons... et j'aimerais savoir comment appeler ces procédures en appuyant sur les flèches du clavier sans utiliser la souris.... une sorte de readkey, mais sans que le programme s’arrête..

    bon je sens que ça me faire perdre des points ma question...


    merci...

  2. #2
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    Salut

    Pour récuperer les touches enfoncées, il te suffit d'utiliser l'evenement OnKeyDown/OnKeyUp de ta Form, en ayant préalablement mis le KeyPreview a true.

    Les codes des touches fléchées sont :
    VK_LEFT
    VK_RIGHT
    VK_UP
    VK_DOWN
    Bonne chance

  3. #3
    Membre très actif
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Par défaut
    merci de la piste.

    j'ai aussi trouvé ce post qui me fais penser que c'est encore une point compliqué à régler ici

    Mais bon ce n'est pas la priorité j'ai encore beaucoup de choses à voir dans ce programme... que je viens de reprendre à zéro aujourd’hui...

    merci en tous les cas.

  4. #4
    Membre éprouvé Avatar de Modulpro
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2010
    Messages : 76
    Par défaut
    Bonjour,
    Pour résoudre ce problème, il suffit de faire correspondre (via l'inspecteur d'objet) cette procédure aux évènements KeyDown de tous les composants de votre form qui gèrent cet évènement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure Tform1.Button1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    begin
      case Key of
        VK_RIGHT: //procédure déplacement droit
        VK_LEFT: // procédure déplacement gauche
        VK_UP: // procédure déplacement haut
        VK_DOWN: // procédure déplacement bas
      end;
    En effet, l'usage des touches fléchés change le focus, mais cela ne pose pas de problèmes si tous les composants réagissent de manière identique.

    Il ne reste plus qu'à remplacer les commentaires par les appels aux procédures correspondantes.

    Cordialement.

  5. #5
    Membre très actif
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Par défaut
    merci ça fonctionne parfaitement !

    c'est vrai que le Tedit n'aime pas trop le focus.. alors je le force à enabled:=false le temps de tester mes touches..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/05/2009, 19h06
  2. Réponses: 5
    Dernier message: 23/10/2007, 10h59
  3. Réponses: 1
    Dernier message: 22/09/2005, 20h46
  4. Désactiver les touches F1, F2, F3, F4, F5 dans IE
    Par ZiZouJH dans le forum Flash
    Réponses: 7
    Dernier message: 17/02/2003, 09h59
  5. Réponses: 5
    Dernier message: 20/08/2002, 18h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo