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

Ada Discussion :

Saisie des touches F1 .. F12


Sujet :

Ada

  1. #1
    Invité
    Invité(e)
    Par défaut Saisie des touches F1 .. F12
    Bonjour,
    Je cherche à utiliser les touches telles que F1..F12

    j'ai essayé avec la procedure Get_Immediate (Item : out Character; Available : out Boolean); et la procedure Look_Ahead (Item : out Character; End_Of_Line : out Boolean); mais je n'y parviend pas.

    j'utilise Gnat et suis sur Linux.

    mon code de test ::=

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    with Ada.Text_Io;
    use Ada.Text_Io;
    with Ada.Integer_Text_Io; -- Pour afficher character'pos(Char);
    use Ada.Integer_Text_Io;
    procedure Main is
       Char : Character;
       Real_String : String(1..4) := (others => Ascii.Nul);
       Last_char : Natural := 1;
       Avaible : Boolean;
     
    begin
          Text_Io.Skip_Line;
          Get_Immediate(Char,avaible);
          Put(Integer'Image(Character'Pos(Char)));
          if Avaible then
             Real_String(Last_char) := Char;
             loop
                Last_Char := Last_Char + 1;
                Get_Immediate(Char,avaible);
                Put(Integer'Image(Character'Pos(Char)));
                Real_String(Last_Char) := Char;
                exit when not Avaible;
             end loop;
          end if;
    end Main;

  2. #2
    Invité
    Invité(e)
    Par défaut
    J'aurais aimé utiliser Get_Immediate (Item : out Character; Available : out Boolean); dans un algo élégant mais bon, je m'en sort avec une serie de case en cascade et Get_Immediate (Item : out Character); pour l'utilisation des touche F1 à F6

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
                  when Character'Val(27) =>
                         Get_Immediate(Char);
                         case Char is
                            when Character'Val(91) =>
                               Get_Immediate(Char);
                               case Char is
                                  when Character'Val(91) =>
                                     Get_Immediate(Char);
                                     case Char is
                                        when Character'Val(65) =>
                                           Mode := Gestion_De_Production;
                                        when Character'Val(66) =>
                                           Mode := Caisse;
                                        when Character'Val(67) =>
                                           Mode := Previsionnel;
                                        when Character'Val(68) =>
                                           Mode := Echeancier;
                                        when Character'Val(69) =>
                                           Mode := Reel;
     
                                        when others =>
                                           Put(Ascii.Bel);
                                     end case;
                                  when Character'Val(49) =>
                                     Get_Immediate(Char);
                                     case Char is
                                        when Character'Val(55) =>
                                           Mode := Connection_Reseau;
                                        when others =>
                                           Put(Ascii.Bel);
                                     end case;
                                  when others => -- echeppement de 3 caracteres;
                                     Put(Ascii.Bel);
                               end case;
                            when others =>
                               Put(Ascii.Bel);
                         end case;

Discussions similaires

  1. Capture des touches, et saisie semi automatique
    Par binoglobule dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 29/09/2008, 11h55
  2. Réponses: 1
    Dernier message: 29/02/2008, 11h48
  3. Touches des fonctions (F1-F12)
    Par raphielda dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 13/09/2006, 12h13
  4. Detection des touches enfoncées par API
    Par Ingham dans le forum VB 6 et antérieur
    Réponses: 31
    Dernier message: 20/02/2006, 12h30
  5. Cherche Nom des touches du clavier
    Par juan64 dans le forum C++Builder
    Réponses: 8
    Dernier message: 23/07/2002, 19h11

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