begin process at 2010 02 10 07:09:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Débutant(e)

 > 

comment convertir un char en sa valeur code touche?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

comment convertir un char en sa valeur code touche?

mardi 22 avril 2008 à 20:56:08 | comment convertir un char en sa valeur code touche?

mighty_warrior

Bonsoir,

donc ma question: comment convertir un char en sa valeur code touche?

par exemple pour la lettre A on sait que son code touche est 65 mais dans mon programme la lettre est dans un char alors comment récupérer le code touche

merci beaucoup!
mardi 22 avril 2008 à 21:34:38 | Re : comment convertir un char en sa valeur code touche?

Caribensila

Membre Club
Réponse acceptée !
Salut,

Ord('A') 

et l'inverse  chr(65).
mardi 22 avril 2008 à 22:58:57 | Re : comment convertir un char en sa valeur code touche?

mighty_warrior

le probléme est que si je fait ord('a') j'obtient 1 et non 65!
mardi 22 avril 2008 à 23:07:00 | Re : comment convertir un char en sa valeur code touche?

mighty_warrior

en fait ce que je cherche a faire c ça: Avec le code suivant (où c est un char)
 keybd_event( char a convertir en code touche,0,1,0)

par exemple si c represente la lettre A il vaut 65 une fois convertit.

merci
mercredi 23 avril 2008 à 00:03:40 | Re : comment convertir un char en sa valeur code touche?

mighty_warrior

J'ai réussi à remédier a mon probléme de départ comme ceci:

S := 'texte';
if iskeydown('0') then 
 begin
  for i := 1 to length(s) do
   begin
   C := S[i];
   x := ord(c);
   y := 32;
   z := x-y;
   keybd_event(z,0,1,0);
   keybd_event(z,0,2,0);
   end;
end;
Donc quand j'appuie sur la touche 0 j'écrit la valeur de S et tout marche bien

Mon second souci c'est que si S vaut par exemple ' delphifr c cool' il sera écrit comme ceci: delphifrccool.

alors y-a t'il un moyen de gérer les espaces?

merci

ps merci Caribensila ton Ord('A') m'a bien aidé. 
mercredi 23 avril 2008 à 00:52:24 | Re : comment convertir un char en sa valeur code touche?

mighty_warrior

Bon je crois que j'ai de la chance. Je vient de trouver une parade, certe ce n'est sans doute pas la meilleur solution mais bon..je la poste quand même

mot: string;
c: char;
x,y,z,NbrCaractere: integer;

dans formcreate
mot := ' delphifrccool';

dans un timer
if iskeydown('0') then  //quand j'appuie sur la touche zero
begin
for i := 1 to length(mot) do
  begin
  C :=mot[i];
  x := ord(c);
  y := 32;
  z := x-y;
  keybd_event(z,0,1,0); //j'appuie sur la touche correspondant a chaque lettre composant "mot"
  keybd_event(z,0,2,0);//je relâche la touche correspondant a chaque lettre composant "mot"
  inc(NbrCaractere); //
  if (NbrCaractere=7)xor(NbrCaractere=10) then // si j'ai ecrit 7 lettres (delphi = 6 lettres +1)
   begin
   keybd_event(32,0,1,0); //faire un espace
   keybd_event(32,0,2,0);
   end;
  end;
NbrCaractere := 1;
 end;

voilà.

mais si quelqu'un a une meilleur solution à proposer je suis preneur lol.

allez bonne nuit à tous et merci.
mercredi 23 avril 2008 à 11:38:10 | Re : comment convertir un char en sa valeur code touche?

cirec

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
oh la oh la

c'est pas du tout comme ça que Keybd_Event fonctionne :


{Reste appuyé ou relache une touche aKey
en fonction du paramètre Down}

Procedure ToogleKey(Const aKey : Byte; Const Down: Boolean = True);
Var KeyDown : Byte;
Begin
  If  Not
Down Then
    
KeyDown := 2
  Else
    
KeyDown := 0;
  keybd_event(aKey, 0, KeyDown, 0);
End;

{Reste appuyé ou relache les touches Ctrl et Alt
en fonction du paramètrte Down}

Procedure SimuleCtrlAlt(Const Down: Boolean = True);
Var KeyDown : Byte;
Begin
  
ToogleKey(VK_MENU, Down);
  ToogleKey(VK_CONTROL, Down);
End;

{Appuie et relache une touche}
Procedure DoKeybdEvent(Const aKey : Byte);
Begin
  
keybd_event(aKey , 0, 0, 0);
  keybd_event(aKey , 0, KEYEVENTF_KEYUP, 0);
End;

{Gère les touches à bascule VerrMaj VerrNum ArrêtDefil}
Procedure SimuleOnOfKey(Const aKey: Byte; Const IsOn: Boolean = True);
Begin
  If
GetKeyState(aKey) <> Integer(IsOn) Then
    
DoKeybdEvent(aKey);
End;

Procedure PressKey(Const aKey : Byte);
Begin
  
ToogleKey(aKey);
End;

Procedure ReleaseKey(Const aKey : Byte);
Begin
  
ToogleKey(aKey, False);
End;


{Gère l'appuie n'importe quelle touche du clavier
  c'est la procédure que l'on utilisera pour simuler l'appuie
  sur les différentes touches du clavier}

Procedure SimuleKey(Const aChar: Char);
Begin
  Case
aChar Of
    
{Touches majuscules}
    'A'..'Z','0'..'9','?','.','/','§','?','£','%','µ','°','+':
    Begin
      
ToogleKey(VK_SHIFT);
      DoKeybdEvent(VkKeyScan(aChar));
      ToogleKey(VK_SHIFT, False);
    End;
    {Touches Ctrl+Alt}
    '~','#','{','[','|','`','\','^','@',']','}':
    Begin
      
SimuleCtrlAlt;
      DoKeybdEvent(VkKeyScan(aChar));
      SimuleCtrlAlt(False);
    End;
    Else
    
{Touches minuscules}
      DoKeybdEvent(VkKeyScan(aChar));
  End;
End;

pour l'utilisation c'est simple :
{On s'assure d'être en minuscule
   obligatoire pour le bon fonctionnement
   ne faire qu'une fois en début de code (dans le OnCreate par Ex.)}

  SimuleOnOfKey(VK_CAPITAL, False);
{et on simule l'appuie des touches}
For I := 1  To length(mot) Do
  
SimuleKey(Mot[I]);

{pour les combinaisons de touche autres que "standard"}
{Exemple faire un Ctrl+C}
  PressKey(VK_CONTROL);
  SimuleKey('C');
  ReleaseKey(VK_CONTROL);
 
@+
Cirec



 
@+
Cirec

mercredi 23 avril 2008 à 22:48:23 | Re : comment convertir un char en sa valeur code touche?

Delphiprog

Administrateur CodeS-SourceS
@Cirec : là, tu es bon pour nous faire un tuto sur la gestion du clavier

May Delphi be with you !

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.


Cette discussion est classée dans : code, valeur, convertir, touche, char


Répondre à ce message

Sujets en rapport avec ce message

Convertir une chaine en numérique [ par codial ] Bonjour,comment fait on pour convertir une chaine de type "1425.63" en numérique?j'ai essayé :Table1.fieldbyName('Prix_Inventaire').asInteger:= StrToI Gif to Jpeg. [ par Becracker ] Salut les gars, Je voudrais juste savoir c koi le code pour faire convertir une image Gif au format Jpeg sachant que j'ai utilisé le code suivant mai Convertir StringGrid (crée par code) vers une image [ par orelien ] Bonjour,J'aimerais copier un composant StringGrid dans une image sans qu'il soit préalablement affiché sur le Form. En bref, je crée par code le compo Juste pour un affichage peu particulier sur mon Etat d'impression. [ par jennybless ] Salut ! J’ai un petit problème de logique. Pouvez-vous m’aider en lisant d’abord mes codes: J’ai trois champs : CODE, A, B J’aimerai qu’à chaque foi code ascii de la touche suppr [ par elementalord ] Bonjour à tous!!Je voudrais savoir si quelqu'un connaitrait le code ascii de la touche suppr.Merci d'avance pour votre reponse. Key codes... [ par ELCouz ] Bonjour,jaimerais savoir si qqn connais un site ou on peu voir tout les codes KEY de F1 a la touche standby etc,,,bref les codes a placer dans la sent utiliser la valeur d'une qrexpression (qreport) [ par habib1976 ] salut ,j'ai écrit  une fonction numtext pour convertir un chiffre en texte (ex :112= cent douze)je veut récupérer le resultat d'une expression (contro touche clavier [ par loveyara ] bjr a tous le monde, j'ai une db grid dans lequel je veux désactiver la touche bas du clavier s'il y a un condition précise voila le code [color=gree


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales