Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5385 connectés 

  FORUM HardWare.fr
  Programmation
  Ada

  [Ada] Taches et entrées de tache (traitement du clavier)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Ada] Taches et entrées de tache (traitement du clavier)

n°2540916
lady ada
Posté le 22-08-2026 à 09:13:47  profilanswer
 

Bonjour.
 
Je dois palier à un handicape (infligé par la médecine sous couvert de médecine).
 
Il semble que lorsque j'appuye sur une touche, parfois j'appuye sur deux touches et les entrées de tache correspondente sont solicitées comme ici avec une tache console qui transmet à chaque tache les combionaisons saisies au clavier.
Mais il s'agit d'activer les entrées d'une trache unique comme un éditeur pour laquelle les entrées telles que del, end, begin sont activables simultanément à l'entrée permettant d'ajouter ou remplacer un caractère dans un texte et ça provoque un bug du au décalage de la position théorique du curseur.
 
Sensiblement, c'est ce qui m'arrive.
 
Comment pallier à ce problème s'il vous plait ?
 
Merci.


Message édité par lady ada le 22-08-2026 à 09:15:37
mood
Publicité
Posté le 22-08-2026 à 09:13:47  profilanswer
 

n°2540917
lady ada
Posté le 22-08-2026 à 09:20:53  profilanswer
 

J'ai trouvé où faire appel à un sémaphore.
 
Avant avec Seize et après avec Release à chaque appel d'entrées de ma tache console.
 
Dans le fichier main, j'entre un get_immédiate dont le caractère saisie est traité avec un case. Et à chaque case, j'appelle l'entrée correspondente de la tache console.
L'utilisation d'un sémaphore dans le main empêchera de saisir deux charactère simultanément.


Message édité par lady ada le 22-08-2026 à 09:21:45
n°2541070
lady ada
Posté le 26-08-2026 à 15:08:44  profilanswer
 

Bonjour !
J'ai dis une bêtise.
Il serait a priori plus judicieux de placer les instruction seize et release, une unique de chaque, repectivement au moment du traitement et à la fin ; Puisqu'ici, le traitement de l'ensemble des touche du clavier induit plusieur acquisition du caractère entré au court du traitement du premier pouvant en entréner d'autre.
 
Exemple

Code :
  1. get_immediate(Wchar);
  2. Key_Lock.Seize;
  3. case Wchar is
  4.   when Wide_Character'val(27) =>
  5.        get_immediate(Wchar);
  6.        .../...
  7.    when others =>
  8.       null;
  9. end case;
  10. Key_Lock.Release;

n°2541085
lady ada
Posté le 26-08-2026 à 16:38:15  profilanswer
 

Non ; C'est pas ça non plus.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Ada

  [Ada] Taches et entrées de tache (traitement du clavier)

 

Sujets relatifs
[Ada][Linux][import de system] Optimisation de l'appel[Divers] Rapidité de traitement
[Ada] Coloriser les liens symbolique sur GNU/Linux[Ada] Passage du paramètre "../*" et Opération_Iteration
[Ada][Gnat] Ada.Directories.Extension(Name : String) return String[Ada] with Gnat.Directory_Operations.Iteration; Wilcard_Iteration
[Ada] Locate_Exec_On_Path et Spawn[PowerShell]Récupérer la disposition clavier active (résolu)
Ecraser le driver de base d'un clavierScript pour touches du clavier à répétition
Plus de sujets relatifs à : [Ada] Taches et entrées de tache (traitement du clavier)


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)