キーおよびショートカットの表現
マルチデバイス アプリケーションでの RTL の使用 への移動
このページでは、キーやショートカット(キーの組み合わせ)を表現するために使用できるさまざまな方法を説明します。
キーの表現
1 つのキーを表現するには、コードまたは文字列を使用することができます。以下の表に、それぞれのキーを表現するために使用できるコードと文字列をすべて示します。
ただし、一部のキーには文字列表現が示されていません。これは、UI フレームワークがそのキーの文字列表現について責任を負っていないためです。それらのキーの文字列表現は、UI フレームワークではなく、アプリケーションの動作するオペレーティング システムによって提供されています。オペレーティング システムによって提供される文字列表現はそれぞれに異なる可能性があるため、以下の表には含まれていません。たとえば、Windows ではロケールに固有のキー名が用意されています。
文字キーの表現
キー | コード表現 | 文字列表現 |
---|---|---|
定数(System.UITypes) | 文字列 | |
|
|
A |
|
|
B |
|
|
C |
|
|
D |
|
|
E |
|
|
F |
|
|
G |
|
|
H |
|
|
I |
|
|
J |
|
|
K |
|
|
L |
|
|
M |
|
|
N |
|
|
O |
|
|
P |
|
|
Q |
|
|
R |
|
|
S |
|
|
T |
|
|
U |
|
|
V |
|
|
W |
|
|
X |
|
|
Y |
|
|
Z |
数字キーの表現
キー | コード表現 | 文字列表現 |
---|---|---|
定数(System.UITypes) | 文字列 | |
|
|
0 |
|
|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
シンボル キーの表現
キー | コード表現 | 文字列表現 |
---|---|---|
定数(System.UITypes) | 文字列 | |
バックスラッシュ |
|
\ |
角かっこ(左) |
|
[ |
角かっこ(右) |
|
] |
コンマ |
|
, |
等号記号 |
|
= |
マイナス記号 |
|
- |
ピリオド |
|
. |
引用符 |
|
' |
セミコロン |
|
; |
スラッシュ |
|
/ |
チルダ |
|
~ |
編集キーの表現
キー | コード表現 | 文字列表現 | |
---|---|---|---|
定数(System.UITypes) | 定数(FMX.Consts、Vcl.Consts) | 文字列 | |
|
|
|
BkSp |
|
|
|
Del |
|
|
|
Enter |
|
|
|
Ins |
|
|
|
Space |
|
|
|
Tab |
ナビゲーション キーの表現
キー | コード表現 | 文字列表現 | |
---|---|---|---|
定数(System.UITypes) | 定数(FMX.Consts、Vcl.Consts) | 文字列 | |
|
|
|
Esc |
|
|
|
PgUp |
|
|
|
PgDn |
|
|
|
End |
|
|
|
Home |
|
|
|
Left |
|
|
|
Up |
|
|
|
Right |
|
|
|
Down |
修飾キーの表現
キー | コード表現 | 文字列表現 | |
---|---|---|---|
System.Classes 定数 | 定数(FMX.Consts、Vcl.Consts) | 文字列 | |
|
|
|
|
|
|
|
|
|
|
|
|
| |||
|
|
|
|
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 | |
|
|
|
Left Alt |
|
|
|
Right Alt |
|
|
Ctrl | |
|
|
|
Left Ctrl |
|
|
|
Right Ctrl |
|
|
Shift | |
|
|
|
Left Shift |
|
|
|
Right Shift |
|
|
|
Left Win |
|
|
|
Right Win |
ファンクション キーの表現
キー | コード表現 | 文字列表現 |
---|---|---|
定数(System.UITypes) | 文字列 | |
|
|
F1 |
|
|
F2 |
|
|
F3 |
|
|
F4 |
|
|
F5 |
|
|
F6 |
|
|
F7 |
|
|
F8 |
|
|
F9 |
|
|
F10 |
|
|
F11 |
|
|
F12 |
|
|
F13 |
|
|
F14 |
|
|
F15 |
|
|
F16 |
|
|
F17 |
|
|
F18 |
|
|
F19 |
|
|
F20 |
|
|
F21 |
|
|
F22 |
|
|
F23 |
|
|
F24 |
ロック キーの表現
キー | コード表現 | 文字列表現 | |
---|---|---|---|
定数(System.UITypes) | 定数(FMX.Consts) | 文字列 | |
|
|
|
Caps Lock |
|
|
|
Num Lock |
|
|
|
Scroll Lock |
テンキーのキーの表現
キー | コード表現 | 文字列表現 |
---|---|---|
定数(System.UITypes) | 文字列 | |
|
|
Num 0 |
|
|
Num 1 |
|
|
Num 2 |
|
|
Num 3 |
|
|
Num 4 |
|
|
Num 5 |
|
|
Num 6 |
|
|
Num 7 |
|
|
Num 8 |
|
|
Num 9 |
|
|
Num * |
|
|
Num + |
|
|
Num , |
|
|
Num - |
|
|
Num . |
|
|
Num / |
マルチメディア キーの表現
キー | コード表現 | 文字列表現 | |
---|---|---|---|
定数(System.UITypes) | 定数(FMX.Consts) | 文字列 | |
ブラウザ: 戻る |
|
|
BrowserBack |
ブラウザ: 進む |
|
||
ブラウザ: 更新 |
|
||
ブラウザ: 中止 |
|
||
ブラウザ: 検索 |
|
||
ブラウザ: お気に入り |
|
||
ブラウザ: ホーム |
|
||
カメラ |
|
|
カメラ |
起動: 電子メール |
|
||
起動: メディア選択 |
|
||
起動: アプリケーション 1 |
|
||
起動: アプリケーション 2 |
|
||
メディア: 次のトラック |
|
||
メディア: 前のトラック |
|
||
メディア: 停止 |
|
||
メディア: 再生/一時停止 |
|
||
音量: ミュート |
|
||
音量: 下げる |
|
||
音量: 上げる |
|
ボタンの表現
ボタン | コード表現 |
---|---|
定数(System.UITypes) | |
マウスの左ボタン |
|
マウスの右ボタン |
|
マウスの中央ボタン |
|
マウスの X1 ボタン |
|
マウスの X2 ボタン |
|
言語入力キーの表現
キー | コード表現 |
---|---|
IME かなモード |
|
IME ハングル モード |
|
IME Junja モード |
|
IME ファイナル モード |
|
IME Hanja モード |
|
IME 漢字モード |
|
IME 変換 |
|
IME 無変換 |
|
IME 使用可能 |
|
IME モード変更要求 |
|
IME 処理 |
|
その他のキーの表現
キー | コード表現 | 文字列表現 | |
---|---|---|---|
定数(System.UITypes) | 定数(FMX.Consts) | 文字列 | |
|
|
||
|
|
|
HardwareBack |
|
|
|
Break |
|
|
|
Clear |
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
改行 |
|
||
|
|
|
Application |
OEM 102 |
|
|
OEM \ |
OEM 固有の Clear キー |
|
||
OEM 固有の Ico 00 |
|
||
OEM 固有の Ico Clear |
|
||
OEM 固有の Ico Help |
|
||
|
|
||
パケット |
|
||
パラグラフ |
|
|
パラグラフ |
|
|
|
Pause |
|
|
||
|
|
||
|
|
||
予約 |
|
||
|
|||
|
|
||
|
|
||
キーなし |
|
ショートカットの表現
以降のセクションでは、ショートカットを 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>
のキーを組み合わせて押します。 アクセラレータ キーは、コントロールのプロパティ Caption や Text で、下線付き文字として表示あれます。 コード内でアクセラレータ キーを指定するには、コントロールのプロパティのキャプションやテキストで、<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");