Association Bouton/Clavier...

Résolu
hippo27 Messages postés 8 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 6 mai 2006 - 4 mai 2006 à 18:21
hippo27 Messages postés 8 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 6 mai 2006 - 6 mai 2006 à 22:32
Voila, je pose le probleme, j'essaie de programmer des chiffres et des lettres. Je pense que je vais bloquer sur un petit probleme, alors je prends de l'avance.
J'aimerais associer l'utilisation de boutons a celle du clavier. J'explique: deux joueurs sur le meme poste de travail pas evident. L'un utilise la souris, mais l'autre? Je voudrais qu'en tapant sur les chiffres du pave numerique, un bouton soit activé(comme si on avait clique dessus), chaque bouton correspondant a un chiffre.
En attendant peu d'aide, a beintot et merci.
hippo27

4 réponses

Abadianet Messages postés 40 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 19 juin 2006 1
4 mai 2006 à 20:49
Bonsoir Hippo27,

Une façon de faire, dans ta forme, tu programmes l'événement suivant (rediriger l'appui des touches 1, 2, 3 ... vers les événements de chaque click des boutons 1, 2, 3 ....)

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
case key of
'1' : Button1Click(Sender);
'2' : Button2Click(Sender);
'3' : Button3Click(Sender);
end;
end;

et tu dois renvoyer tous les composants qui peuvent avoir le focus (bouton ...) vers ce même événement

Bonne programmation de jeu

Abadiane
3
Abadianet Messages postés 40 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 19 juin 2006 1
6 mai 2006 à 20:13
Bonsoir Hippo27,

On va y aller pas à pas.
1) Dans Delphi, sais-tu associer un événement à un objet (cela se fait dans l'inspecteur d'objet, onglet Evénements) ?
2) Si c'est OK, tu sélectionnes ta forme principale
3) dans l'onglet Evénements tu trouves l'événement OnKeyPress,
4) Tu double-cliques dans la liste à droite de "OnKeyPress",
5) Tu te retrouves alors dans le programme avec le corps de la procédure tel que celle ci-dessous
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin

end;
6) Que tu complètes comme dans mon exemple
7) Ensuite, au lieu de retaper le même programme pour tous les boutons de ta forme, dans l'onglet Evénements face à l'événement OnKeyPress tu recherches dans la liste (au lieu de double-cliquer comme précédemment) l'évenement FormKeyPress
8) Un élément qui peut recevoir le focus correspond à tous les éléments que ton curseur peut atteindre (en cours d'exécution de ton programme) en utilisant la touche TAB (il y donc les boutons, les Chekbox, RadioButton ...).

Voilà, voilà
Note le point sur tu n'as pas compris, on va y arriver
Bonne programmation

Abadiane
3
hippo27 Messages postés 8 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 6 mai 2006
6 mai 2006 à 15:27
Je te remercie Abadiane. Tu reponds exactement a ma demande, cependant, j'ai une ou deux questions sur ton explication, qui peut paraitre idiote, mais je debute en graphique:
cette procedure/evenement, je l'associe a la fiche,aux boutons ou aux touches? Je ne vois pas comment l'utiliser en fait.
Qu'est ce que le focus?
Merci encore pour ta reponse, en esperant un autre message de ta part je te salue!
hippo27
0
hippo27 Messages postés 8 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 6 mai 2006
6 mai 2006 à 22:32
Bonsoir Abadiane,
cette fois grace a tes explications tout est clair. Je pense que je vais pouvoir reussir. Je ne savais pas que l''on pouvait associer la meme procedure a plusieurs boutons.J'ai beaucoup appris.
Je te remercie mille fois pour le temps que tu m'as accordé et pour la precision ed tes reponses.
Bonne fin de soiree et peu etre a bientot!
Hippo27
0
Rejoignez-nous