Top > キー入力

ユーザーが押したキーコードを調べる手続きや関数を使います。

キー入力 Edit

以下のプログラムはキーボードのテンキーを使って選択されている図形を移動します。

1PROCEDURE TEST;
2VAR
3key:INTEGER;
4BEGIN
5Message('5を押すと終了します');手続き「Message」を使ってメッセージウインドウを表示させます。
6REPEATループの始まりです。5が押されるまでループします。
7GetKeyDown(key);手続き「GetKeyDown」を使ってユーザーからのキー入力を受け取ります。
ユーザーがキーを押すまでこの行で待機します。
キーが押されたらキーのASCIIコードを変換Keyに格納し次の行に進みます。
8IF key=52 THENもし押されたキーが4(ASCIIコード=52)ならば、
9MoveObjs(-10,0,FALSE,FALSE);手続き「MoveObjs」を使って選択されている図形を10mm左(-)へ移動します。
10IF key=54 THENもし押されたキーが6(ASCIIコード=54)ならば、
11MoveObjs(10,0,FALSE,FALSE);手続き「MoveObjs」を使って選択されている図形を10mm右(+)へ移動します。
12IF key=50 THENもし押されたキーが2(ASCIIコード=50)ならば、
13MoveObjs(0,-10,FALSE,FALSE);手続き「MoveObjs」を使って選択されている図形を10mm下(-)へ移動します。
14IF key=56 THENもし押されたキーが8(ASCIIコード=56)ならば、
15MoveObjs(0,10,FALSE,FALSE);手続き「MoveObjs」を使って選択されている図形を10mm上(+)へ移動します。
16ReDraw;手続き「ReDraw」を使って移動した図形を再描画します。
プログラム実行中は明示的に図形を再描画しない限り変更した図形は画面に反映されませんので、
図形を移動したり、変形したあとは「ReDraw」を使って再描画させる必要があります。
17UNTIL key=53;ループを抜ける条件は5(ASCIIコード=53)が押されたときです。
18ClrMessage;表示していたメッセージウインドウを消去します。
19END;
20Run (TEST);

[例題プログラム]

PROCEDURE	TEST;
	VAR
			key:INTEGER;
	BEGIN
		Message('5を押すと終了します');
		REPEAT
			GetKeyDown(key);
			IF key=52 THEN
				MoveObjs(-10,0,FALSE,FALSE);
			IF key=54 THEN
				MoveObjs(10,0,FALSE,FALSE);
			IF key=50 THEN
				MoveObjs(0,-10,FALSE,FALSE);
			IF key=56 THEN
				MoveObjs(0,10,FALSE,FALSE);
			ReDraw;
		UNTIL key=53;
		ClrMessage;
	END;
Run (TEST);

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Tue, 06 Dec 2011 15:46:03 JST (4528d)