Représentation des touches et des raccourcis

De RAD Studio
(Redirigé depuis Codes touche virtuelle)
Aller à : navigation, rechercher

Remonter à Utilisation de la RTL dans les applications multi-périphériques


Cette page explique les différentes méthodes que vous pouvez utiliser pour représenter des touches ou des raccourcis (combinaisons de touches).

Représentation des touches

Pour représenter une seule touche, vous pouvez utiliser un code ou une chaîne. Les tableaux suivants présentent une liste complète des codes et des chaînes que vous pouvez utiliser pour représenter chaque touche.

Les tableaux suivants n'affichent pas de représentation chaîne pour certaines touches car le framework de l'interface utilisateur n'est pas responsable de la représentation chaîne de ces touches. A la place, le système d'exploitation sur lequel votre application est exécutée fournit la représentation chaîne de ces touches. Les tableaux suivants n'indiquent pas les représentations chaîne fournies par le système d'exploitation car elles peuvent varier ; par exemple, Windows fournit des noms de touche spécifiques aux paramètres locaux (EN).

Représentation des touches lettres

Touche Représentation code Représentation chaîne
Constante (System.UITypes) Chaîne

A

vkA

A

B

vkB

B

C

vkC

C

D

vkD

D

E

vkE

E

F

vkF

F

G

vkG

G

H

vkH

H

I

vkI

I

J

vkJ

J

K

vkK

K

L

vkL

L

M

vkM

M

N

vkN

N

O

vkO

O

P

vkP

P

Q

vkQ

Q

R

vkR

R

S

vkS

S

T

vkT

T

U

vkU

U

V

vkV

V

W

vkW

W

X

vkX

X

Y

vkY

Y

Z

vkZ

Z

Représentation des touches numériques

Touche Représentation code Représentation chaîne
Constante (System.UITypes) Chaîne

0

vk0

0

1

vk1

1

2

vk2

2

3

vk3

3

4

vk4

4

5

vk5

5

6

vk6

6

7

vk7

7

8

vk8

8

9

vk9

9

Représentation des touches symboles

Touche Représentation code Représentation chaîne
Constante (System.UITypes) Chaîne

Barre oblique inversée

vkBackslash

\

Parenthèse (ouvrante)

vkLeftBracket

[

Parenthèse (fermante)

vkRightBracket

]

Virgule

vkComma

,

Signe égal

vkEqual

=

Signe moins

vkMinus

-

Point

vkPeriod

.

Guillemet

vkQuote

'

Point-virgule

vkSemicolon

;

Barre oblique

vkSlash

/

Tilde

vkTilde

~

Représentation des touches d'édition

Touche Représentation code Représentation chaîne
Constante (System.UITypes) Constante (FMX.Consts, Vcl.Consts) Chaîne

Ret. Arr.

vkBack

SmkcBkSp

BkSp

Suppr.

vkDelete

SmkcDel

Del

Entrée
Retour

vkReturn

SmkcEnter

Enter

Inser.

vkInsert

SmkcIns

Ins

Barre d'espace

vkSpace

SmkcSpace

Space

Tab

vkTab

SmkcTab

Tab

Représentation des touches de navigation

Touche Représentation code Représentation chaîne
Constante (System.UITypes) Constante (FMX.Consts, Vcl.Consts) Chaîne

Echap. (Echappement)

vkEscape

SmkcEsc

Esc

Pg préc. (Page précédente)

vkPrior

SmkcPgUp

PgUp

Pg suiv. (Page suivante)

vkNext

SmkcPgDn

PgDn

Fin

vkEnd

SmkcEnd

End

Orig.

vkHome

SmkcHome

Home

(Flèche gauche)

vkLeft

SmkcLeft

Left

(Flèche haut)

vkUp

SmkcUp

Up

(Flèche droite)

vkRight

SmkcRight

Right

(Flèche bas)

vkDown

SmkcDown

Down

Représentation des touches modificatrices

Touche Représentation code Représentation chaîne
Constante System.Classes Constante (FMX.Consts, Vcl.Consts) Chaîne

Alt

scAlt

SmkcAlt

Alt+

Cmd

scCommand

SmkcHome

Cmd+

Ctrl (Contrôle)

scCtrl

SmkcCtrl

Ctrl+

^

Maj.

scShift

SmkcShift

Shift+

La plupart des ordinateurs exécutant Windows n'ont pas de touche Cmd, tout comme la plupart des ordinateurs exécutant macOS n'ont pas de touche Ctrl. Pensez-y lorsque vous configurez les raccourcis de votre application. Vous pouvez définir vos raccourcis à l'exécution et utiliser la compilation conditionnelle pour configurer le raccourci adapté à chaque plate-forme. Par exemple :

Delphi :

{$IF defined(MSWINDOWS)}
    MenuItem1.ShortCut := TextToShortCut('Ctrl+N');
{$ELSEIF defined(MACOS) and not defined(IOS)}
    MenuItem1.ShortCut := TextToShortCut('Cmd+N');
{$ENDIF}

C++ :

#if defined(_WIN32)
    MenuItem1->ShortCut = TextToShortCut("Ctrl+N");
#elif defined(__APPLE__) && (defined(__i386__) or defined(__x86_64__))
    MenuItem1->ShortCut = TextToShortCut("Cmd+N");
#endif

Vous pouvez également représenter les touches modificatrices comme des touches normales en utilisant les constantes et les chaînes suivantes :

Touche Représentation code Représentation chaîne
Constante (System.UITypes) Constante (FMX.Consts) Chaîne

Alt

vkMenu

Alt

Alt (Gauche)

vkLMenu

SmkcLMenu

Left Alt

Alt (Droite)

vkRMenu

SmkcRMenu

Right Alt

Ctrl (Contrôle)

vkControl

Ctrl

Ctrl (Contrôle gauche)

vkLControl

SmkcLControl

Left Ctrl

Ctrl (Contrôle droite)

vkRControl

SmkcRControl

Right Ctrl

Maj.

vkShift

Shift

Maj. (Gauche)

vkLShift

SmkcLShift

Left Shift

Maj. (Droite)

vkRShift

SmkcRShift

Right Shift

Windows (Gauche)

vkLWin

SmkcLWin

Left Win

Windows (Droite)

vkRWin

SmkcRWin

Right Win

Représentation des touches fonctions

Touche Représentation code Représentation chaîne
Constante (System.UITypes) Chaîne

F1

vkF1

F1

F2

vkF2

F2

F3

vkF3

F3

F4

vkF4

F4

F5

vkF5

F5

F6

vkF6

F6

F7

vkF7

F7

F8

vkF8

F8

F9

vkF9

F9

F10

vkF10

F10

F11

vkF11

F11

F12

vkF12

F12

F13

vkF13

F13

F14

vkF14

F14

F15

vkF15

F15

F16

vkF16

F16

F17

vkF17

F17

F18

vkF18

F18

F19

vkF19

F19

F20

vkF20

F20

F21

vkF21

F21

F22

vkF22

F22

F23

vkF23

F23

F24

vkF24

F24

Représentation des touches de verrouillage

Touche Représentation code Représentation chaîne
Constante (System.UITypes) Constante (FMX.Consts) Chaîne

Verr. maj

vkCapital

SmkcCapital

Caps Lock

Verr. num.

vkNumLock

SmkcNumLock

Num Lock

Arrêt défil.

vkScroll

SmkcScroll

Scroll Lock

Représentation des touches du pavé numérique

Touche Représentation code Représentation chaîne
Constante (System.UITypes) Chaîne

0

vkNumpad0

Num 0

1

vkNumpad1

Num 1

2

vkNumpad2

Num 2

3

vkNumpad3

Num 3

4

vkNumpad4

Num 4

5

vkNumpad5

Num 5

6

vkNumpad6

Num 6

7

vkNumpad7

Num 7

8

vkNumpad8

Num 8

9

vkNumpad9

Num 9

*

vkMultiply

Num *

+

vkAdd

Num +

,

vkSeparator

Num ,

-

vkSubtract

Num -

.

vkDecimal

Num .

/

vkDivide

Num /

Représentation des touches multimédia

Touche Représentation code Représentation chaîne
Constante (System.UITypes) Constante (FMX.Consts) Chaîne

Navigateur : Précédent

vkBrowserBack

SmkcBrowserBack

BrowserBack

Navigateur : Suivante

vkBrowserForward

Navigateur : Actualiser

vkBrowserRefresh

Navigateur : Arrêter

vkBrowserStop

Navigateur : Rechercher

vkBrowserSearch

Navigateur : Favoris

vkBrowserFavorites

Navigateur : Accueil

vkBrowserHome

Camera

vkCamera

SmkcCamera

Camera

Démarrage : Email

vkLaunchMail

Démarrage : Sélection du média

vkLaunchMediaSelect

Démarrage : App 1

vkLaunchApp1

Démarrage : App 2

vkLaunchApp2

Lecteur multimédia : Piste suivante

vkMediaNextTrack

Lecteur multimédia : Piste précédente

vkMediaPrevTrack

Lecteur multimédia : Arrêter

vkMediaStop

Lecteur multimédia : Lire/Suspendre

vkMediaPlayPause

Volume : Muet

vkVolumeMute

Volume : Baisser

vkVolumeDown

Volume : Augmenter

vkVolumeUp

Représentation des boutons

Bouton Représentation code
Constante (System.UITypes)

Bouton gauche de la souris

vkLButton

Bouton droit de la souris

vkRButton

Bouton central de la souris

vkMButton

Bouton X1 de la souris

vkXButton1

Bouton X2 de la souris

vkXButton2

Représentation des touches de saisie du langage

Touche Représentation code

Mode Kana IME

vkKana

Mode Hangul IME

vkHangul

Mode Junga IME

vkJunja

Mode final IME

vkFinal

Mode Hanja IME

vkHanja

Mode Kanji IME

vkKanji

Conversion IME

vkConvert

Non conversion IME

vkNonConvert

Acceptation IME

vkAccept

Demande de changement de mode IME

vkModeChange

Traitement IME

vkProcessKey

Représentation des autres touches

Touche Représentation code Représentation chaîne
Constante (System.UITypes) Constante (FMX.Consts) Chaîne

Attn

vkAttn

RetourPhys

vkHardwareBack

SmkcHardwareBack

HardwareBack

Arrêt

vkCancel

SmkcCancel

Break

Effacer

vkClear

SmkcClear

Clear

CrSel

vkCrsel

Effacer EOF

vkErEof

Exécuter

vkExecute

ExSel

vkExsel

Aide

vkHelp

Passage à la ligne

vkLineFeed

Menu

vkApps

SmkcApps

Application

OEM 102
La touche crochet angulaire ou la touche barre oblique inverse sur le clavier RT 102 touches.

vkOem102

SmkcOem102

OEM \

Touche Effacer spécifique à l'OEM

vkOemClear

Ico 00 spécifique à l'OEM

vkIco00

Ico Effacer spécifique à l'OEM

vkIcoClear

Ico Aide spécifique à l'OEM

vkIcoHelp

PA1

vkPA1

Paquet
Utilisée pour passer les caractères Unicode comme s'ils étaient des frappes de touches.

vkPacket

Paragraphe

vkPara

SmkcPara

Paragraphe

Pause

vkPause

SmkcPause

Pause

Play

vkPlay

Impr.

vkPrint

Impr. écran

vkSnapshot

Réservée

vkNoname

Select (EN)

vkSelect

Veille

vkSleep

Zoom

vkZoom

Pas de touche

vkNone

Représentation des raccourcis

Les sections suivantes expliquent comment représenter un raccourci en tant qu'instance de TShortCut ou en tant que chaîne.

Représentation des raccourcis en tant qu'instances de TShortCut

Pour définir un raccourci en tant qu'instance de System.Classes.TShortCut, joignez le code d'une touche standard et les codes des touches modificatrices en utilisant l'opérateur au niveau du bit OR. Par exemple :

Delphi :

Shortcut := vkZ or scShift or scCtrl;

C++ :

Shortcut = vkZ | scShift | scCtrl;

Représentation des raccourcis en tant que chaînes

Pour définir un raccourci en utilisant une chaîne, vous pouvez simplement concaténer les touches, et placer la touche principale à la fin. Voici des exemples de chaînes qui représentent des raccourcis :

  • ^P (Ctrl + P)
  • Maj+Ctrl+Z (Shift + Ctrl + Z)

Spécification de touches accélératrices

Sur les plates-formes Windows, les touces accélératrices permettent à l'utilisateur d'accéder à des contrôles en utilisant seulement des entrées clavier, par exemple en enfonçant la combinaison de touches Alt+<touche_accélératrice>. Une touche accélératrice est affichée sous la forme d'une lettre soulignée dans la propriété Caption ou Text de votre contrôle. Pour spécifier une touche accélératrice dans votre code, précédez une <touche_accélératrice> d'une esperluette & dans la propriété Caption ou Text de votre contrôle. La lettre suivant l'esperluette apparaît soulignée dans la légende/le texte du contrôle. Par exemple, pour définir le caractère S comme touche accélératrice pour un bouton Eave, tapez &Enregistrer dans la propriété Text. Sur certains contrôles, la <touche_accélératrice> e apparaît soulignée seulement quand la touche Alt est enfoncée.

Remarque : Cette fonctionnalité ne fonctionne que sur les plates-formes Windows. Lorsqu'elle est exécutée sur d'autres plates-formes, l'esperluette est retirée du texte.

Comme une esperluette & dans une propriété Caption/Text est traitée comme une instruction de soulignage de la lettre suivante, un seul caractère esperluette ne sera pas affiché dans la légende/le texte du contrôle correspondant. Pour montrer un seul caractère esperluette & dans une légende/un texte, spécifiez deux esperluettes comme suit : &&.

Basculer entre la représentation code et chaîne

Dans le cas d'une instance de System.Classes.TShortCut représentant une touche ou un raccourci, vous pouvez utiliser les méthodes suivantes pour obtenir la représentation chaîne de cette touche ou de ce raccourci :

A l'inverse, dans le cas d'une représentation chaîne de la touche ou du raccourci, vous pouvez utiliser les méthodes suivantes pour obtenir une instance de TShortCut représentant cette touche ou ce raccourci :

En utilisant ces fonctions, vous pouvez facilement définir le raccourci d'un élément du menu ou un autre contrôle à l'exécution à l'aide de la représentation chaîne du raccourci plutôt qu'à l'aide de sa représentation code. Ainsi, votre code est plus lisible :

Delphi :

MenuItem1.ShortCut := TextToShortCut('Cmd+N');

C++ :

MenuItem1->ShortCut = TextToShortCut("Cmd+N");

Voir aussi