last updated:2021/06/03

←前へ 次へ→ 機能別Q&A 質問番号順Q&A


[HMM0046A]

●keypressed文による分岐のスケルトン

Q.
keypressed文によって分岐させたいのですが、キーコードを探すのが面倒です。

A.

次にベースになるマクロを掲載しました。それぞれのキープレスに対応した動作を記述するだけで、すぐに使えるマクロになります。デフォルトではエスケープキーで終了し、リターンキーではビープ音が鳴りますが、自由に変更できます。必要なキーだけを残すように編集してください。

//------- サンプルマクロ -------//
// 編集者注:長さを短く押さえるため一部省略してあります。
disablebreak;
title " [Esc] 終了";
while(1){
    ##k=keypressed;

    if(##k==0x1B){ break;//Esc
    }else if(##k==0x0D){// ENTER
        beep;
    }else if(##k==0x25){// ←left
    }else if(##k==0x26){// ↑UP
    }else if(##k==0x27){// →right
    }else if(##k==0x28){// ↓DOWN
    }else if(##k==0x24){// Home
    }else if(##k==0x23){// End
    }else if(##k==0x21){// PgUp
    }else if(##k==0x22){// PgDn
    }else if(##k==0x09){// Tab
    }else if(##k==0x11){// Ctrl
    }else if(##k==0x10){// Shift
    }else if(##k==0x08){// BackSpace
    }else if(##k==0x20){// space
    }else if(##k==0x2D){// Ins
    }else if(##k==0x2E){// Del
    }else if(##k==0x14){// CapsLock
    }else if(##k==0x41){// a,A
    // : :
    }else if(##k==0x5A){// z,Z
    }else if(##k==0xBD){// -_
    }else if(##k==0xBB){// =+
    }else if(##k==0xDC){// \ |
    }else if(##k==0xDB){// [{
    }else if(##k==0xDD){// ]}
    }else if(##k==0xBA){// ;:
    }else if(##k==0xDE){// '"
    }else if(##k==0xBC){// ,<
    }else if(##k==0xBE){// .>
    }else if(##k==0xBF){// /?
    }else if(##k==0xC0){// `~
    }else if(##k==0x70){// F-1
    // : :
    }else if(##k==0x78){// F-9
    }else if(##k==0x79){// F-10//Ver.2.14以下は取得不能
    }else if(##k==0x7A){// F-11
    }else if(##k==0x7B){// F-12
    }else if(##k==0x91){// Scroll Lock
    }else if(##k==0x13){// Pause
    }else if(##k==0x31){// keyBoard-1
    // : :
    }else if(##k==0x30){// keyBoard-0
    }else if(##k==0x60){// tenkey-0
    // : :
    }else if(##k==0x69){// tenkey-9
    }else if(##k==0x6E){// tenkey-.
    }else if(##k==0x6B){// tenkey-+
    }else if(##k==0x6D){// tenkey--
    }else if(##k==0x6A){// tenkey-*
    }else if(##k==0x6F){// tenkey-/
    }else if(##k==0x14){// tenkey-Num Lock
    }else if(##k!=0)beep;
}
endmacro;
// ---------------------------- //

←前へ 次へ→ 機能別Q&A 質問番号順Q&A