キーおよびショートカットの表現

提供: RAD Studio
移動先: 案内検索

マルチデバイス アプリケーションでの RTL の使用 への移動


このページでは、キーやショートカット(キーの組み合わせ)を表現するために使用できるさまざまな方法を説明します。

キーの表現

1 つのキーを表現するには、コードまたは文字列を使用することができます。以下の表に、それぞれのキーを表現するために使用できるコードと文字列をすべて示します。

ただし、一部のキーには文字列表現が示されていません。これは、UI フレームワークがそのキーの文字列表現について責任を負っていないためです。それらのキーの文字列表現は、UI フレームワークではなく、アプリケーションの動作するオペレーティング システムによって提供されています。オペレーティング システムによって提供される文字列表現はそれぞれに異なる可能性があるため、以下の表には含まれていません。たとえば、Windows ではロケールに固有のキー名が用意されています

文字キーの表現

キー コード表現 文字列表現
定数(System.UITypes 文字列

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

数字キーの表現

キー コード表現 文字列表現
定数(System.UITypes 文字列

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

シンボル キーの表現

キー コード表現 文字列表現
定数(System.UITypes 文字列

バックスラッシュ

vkBackslash

\

角かっこ(左)

vkLeftBracket

[

角かっこ(右)

vkRightBracket

]

コンマ

vkComma

,

等号記号

vkEqual

=

マイナス記号

vkMinus

-

ピリオド

vkPeriod

.

引用符

vkQuote

'

セミコロン

vkSemicolon

;

スラッシュ

vkSlash

/

チルダ

vkTilde

~

編集キーの表現

キー コード表現 文字列表現
定数(System.UITypes 定数(FMX.Consts、Vcl.Consts) 文字列

Backspace

vkBack

SmkcBkSp

BkSp

Delete

vkDelete

SmkcDel

Del

Enter
Return

vkReturn

SmkcEnter

Enter

Insert

vkInsert

SmkcIns

Ins

スペース バー

vkSpace

SmkcSpace

Space

Tab

vkTab

SmkcTab

Tab

ナビゲーション キーの表現

キー コード表現 文字列表現
定数(System.UITypes 定数(FMX.Consts、Vcl.Consts) 文字列

Esc(Escape)

vkEscape

SmkcEsc

Esc

PgUp(Page Up)

vkPrior

SmkcPgUp

PgUp

PgDn(Page Down)

vkNext

SmkcPgDn

PgDn

End

vkEnd

SmkcEnd

End

Home

vkHome

SmkcHome

Home

(左矢印)

vkLeft

SmkcLeft

Left

(上矢印)

vkUp

SmkcUp

Up

(右矢印)

vkRight

SmkcRight

Right

(下矢印)

vkDown

SmkcDown

Down

修飾キーの表現

キー コード表現 文字列表現
System.Classes 定数 定数(FMX.Consts、Vcl.Consts) 文字列

Alt

scAlt

SmkcAlt

Alt+

Cmd

scCommand

SmkcCmd

Cmd+

Ctrl(Control)

scCtrl

SmkcCtrl

Ctrl+

^

Shift

scShift

SmkcShift

Shift+

Windows が動作するほとんどのコンピュータには Cmd キーがありません。同様に macOS が動作するほとんどのコンピュータには Ctrl キーがありません。アプリケーションのショートカットを構成する際には、この点に留意してください。 実行時にショートカットを定義し、条件付きコンパイルを使ってプラットフォームごとに適切なショートカットを設定する必要があるかもしれません。 例:

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

以下の定数および文字列を使って、修飾キーを通常のキーとして表現することもできます。

キー コード表現 文字列表現
定数(System.UITypes 定数(FMX.Consts) 文字列

Alt

vkMenu

Alt

Alt(左)

vkLMenu

SmkcLMenu

Left Alt

Alt(右)

vkRMenu

SmkcRMenu

Right Alt

Ctrl(Control)

vkControl

Ctrl

Ctrl(左 Control)

vkLControl

SmkcLControl

Left Ctrl

Ctrl(右 Control)

vkRControl

SmkcRControl

Right Ctrl

Shift

vkShift

Shift

Shift(左)

vkLShift

SmkcLShift

Left Shift

Shift(右)

vkRShift

SmkcRShift

Right Shift

Windows(左)

vkLWin

SmkcLWin

Left Win

Windows(右)

vkRWin

SmkcRWin

Right Win

ファンクション キーの表現

キー コード表現 文字列表現
定数(System.UITypes 文字列

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

ロック キーの表現

キー コード表現 文字列表現
定数(System.UITypes 定数(FMX.Consts) 文字列

Caps Lock

vkCapital

SmkcCapital

Caps Lock

Num Lock

vkNumLock

SmkcNumLock

Num Lock

Scroll Lock

vkScroll

SmkcScroll

Scroll Lock

テンキーのキーの表現

キー コード表現 文字列表現
定数(System.UITypes 文字列

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 /

マルチメディア キーの表現

キー コード表現 文字列表現
定数(System.UITypes 定数(FMX.Consts) 文字列

ブラウザ: 戻る

vkBrowserBack

SmkcBrowserBack

BrowserBack

ブラウザ: 進む

vkBrowserForward

ブラウザ: 更新

vkBrowserRefresh

ブラウザ: 中止

vkBrowserStop

ブラウザ: 検索

vkBrowserSearch

ブラウザ: お気に入り

vkBrowserFavorites

ブラウザ: ホーム

vkBrowserHome

カメラ

vkCamera

SmkcCamera

カメラ

起動: 電子メール

vkLaunchMail

起動: メディア選択

vkLaunchMediaSelect

起動: アプリケーション 1

vkLaunchApp1

起動: アプリケーション 2

vkLaunchApp2

メディア: 次のトラック

vkMediaNextTrack

メディア: 前のトラック

vkMediaPrevTrack

メディア: 停止

vkMediaStop

メディア: 再生/一時停止

vkMediaPlayPause

音量: ミュート

vkVolumeMute

音量: 下げる

vkVolumeDown

音量: 上げる

vkVolumeUp

ボタンの表現

ボタン コード表現
定数(System.UITypes

マウスの左ボタン

vkLButton

マウスの右ボタン

vkRButton

マウスの中央ボタン

vkMButton

マウスの X1 ボタン

vkXButton1

マウスの X2 ボタン

vkXButton2

言語入力キーの表現

キー コード表現

IME かなモード

vkKana

IME ハングル モード

vkHangul

IME Junja モード

vkJunja

IME ファイナル モード

vkFinal

IME Hanja モード

vkHanja

IME 漢字モード

vkKanji

IME 変換

vkConvert

IME 無変換

vkNonConvert

IME 使用可能

vkAccept

IME モード変更要求

vkModeChange

IME 処理

vkProcessKey

その他のキーの表現

キー コード表現 文字列表現
定数(System.UITypes 定数(FMX.Consts) 文字列

Attn

vkAttn

Back

vkHardwareBack

SmkcHardwareBack

HardwareBack

Break

vkCancel

SmkcCancel

Break

Clear

vkClear

SmkcClear

Clear

CrSel

vkCrsel

Erase EOF

vkErEof

Execute

vkExecute

ExSel

vkExsel

Help

vkHelp

改行

vkLineFeed

Menu

vkApps

SmkcApps

Application

OEM 102
RT 102 キーのキーボードにおける山かっこキーまたはバックスラッシュ キー

vkOem102

SmkcOem102

OEM \

OEM 固有の Clear キー

vkOemClear

OEM 固有の Ico 00

vkIco00

OEM 固有の Ico Clear

vkIcoClear

OEM 固有の Ico Help

vkIcoHelp

PA1

vkPA1

パケット
Unicode 文字をあたかもキー入力であるかのように渡すのに使用されます。

vkPacket

パラグラフ

vkPara

SmkcPara

パラグラフ

Pause

vkPause

SmkcPause

Pause

Play

vkPlay

Print

vkPrint

Print Screen

vkSnapshot

予約

vkNoname

Select

vkSelect

Sleep

vkSleep

Zoom

vkZoom

キーなし

vkNone

ショートカットの表現

以降のセクションでは、ショートカットを TShortCut のインスタンスまたは文字列として表現する方法を説明します。

ショートカットを TShortCut のインスタンスとして表現する

ショートカットを System.Classes.TShortCut のインスタンスとして定義するには、通常のキーのコードと修飾キーのコードとを OR ビット演算子で結びます。たとえば次のようにします。

Delphi の場合:

Shortcut := vkZ or scShift or scCtrl;

C++ の場合:

Shortcut = vkZ | scShift | scCtrl;

文字列を使ってショートカットを表現する

文字列を使ってショートカットを定義するには、キーをそのまま連結します。このとき、主要キーを末尾に置きます。次に示すのは、ショートカットを表す文字列の例です。

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

アクセラレータ キーを指定する

Windows プラットフォームでは、アクセラレータ キーを利用することにより、ユーザーは、キーボード入力のみでコントロールにアクセスすることができます。 たとえば、Alt+<accelerator_letter> のキーを組み合わせて押します。 アクセラレータ キーは、コントロールのプロパティ CaptionText で、下線付き文字として表示あれます。 コード内でアクセラレータ キーを指定するには、コントロールのプロパティのキャプションやテキストで、<accelerator_letter> の前にアンパサンド(&)の文字をつけます。 アンパサンド後の文字は、コントロールのキャプション/テキストでは、下線が付いて表示されます。 たとえば、文字 S を、Save ボタンのアクセラレータ キーとして設定するには、テキスト プロパティで「&Save」と入力します。 <accelerator_letter> を指定したコントロールによっては、Alt キーを押下したときだけ下線が現れるものもあります。

メモ: この機能は、Windows プラットフォーム上でのみ動作します。 他のプラットフォーム上で実行した場合、アンパサンドはテキストから取り去られます。

キャプション/テキスト プロパティでのアンパサンド & 文字は、次の文字に下線を付ける指示として処理されるため、コントロールのキャプション/テキストに表示される、単一のアンパサンド文字は表示されません。 キャプション/テキストに単体のアンパサンド & 文字を表示させるには、アンパサンド文字を 2 つ(&&)指定します。

コード表現と文字列表現の切り替え

キーまたはショートカットを表す System.Classes.TShortCut のインスタンスがある場合、以下のメソッドを使用して、そのキーまたはショートカットの文字列表現を取得することができます。

逆に、キーまたはショートカットの文字列表現がある場合に、以下のメソッドを使用して、そのキーまたはショートカットを表す TShortCut のインスタンスを取得することができます。

これらの関数を使用することで、実行時にメニュー項目やその他のコントロールのショートカットを簡単に設定することができます。このとき、ショートカットのコード表現ではなく文字列表現を使用すると、コードがより読みやすいものになります。

Delphi の場合:

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

C++ の場合:

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

関連項目