Mon application utilise des caractères unicode et j'ai plusieurs champs de texte où je veux limiter l'utilisateur de inputing caractères spéciaux comme : ' ";Comment identifier les clés Unicode à la pression d'une touche?
begin
if not (Key in ['a'..'z','A'..'Z',' ','0'..'9',#13,#8]) then
Key := #0;
if Key = #13 then
bOk.Click;
end;
Donc, à ce stade, il permet des espaces ajouter un utilisateur et d'utiliser un backspace pour effacer, et bien sûr la touche Entrée pour comfirm.
Il y a quelques caractères unicode je veux laisser être inputed aussi. A, C, E, I, š, ú û, ž et leurs alternatives en majuscules , mais juste en les ajoutant à l'ensemble comme si ...
Key in ['a'..'z','A'..'Z',' ','0'..'9',#13,#8,'ą'..'ž','Ą'..'Ž']
... ne fait rien et je ne peux toujours pas écrire ces symboles dans le champ de texte.
Je voudrais savoir, comment résoudre ce problème. Est-il possible de dire si la touche pressée est le caractère unicode que je cherche?
Merci
Notez que vous devez généralement utiliser 'CharInSet' dans D2009. Le compilateur vous avertit à ce sujet. 'CharInSet' ne fonctionne que pour les jeux de caractères ANSI. utku_karatas réponses est le chemin à parcourir. – jpfollenius
+1 @Smasher: faites-en une réponse. –