#PREKEYで始まるセクションです。
このセクションは、なんらかの形で定義されたキーが押されると、常にそのキー定義が実行される前に呼ばれます。
このセクションは主にChangeKeySet手続きを使用して、キーセットの切り替えを行うために使用されます。
定義の仕方は以下の通りです。
#PREKEY 複文
例) #GLOBALVAR #valval; #PREKEY { // Kが押されたら#valvalは1になる。 IF (#_KEYMODE==1 AND #_KEYCODE=0x4B AND #_SHIFTKEY<>0 AND #_CTRLKEY<>0 AND #_ALTKEY<>0) THEN { #valval=1; } ELSE { #valval=0; }; } #KEY K { IF (#valval<>1) THEN { ShowMessage('error?','test',0); // 1のはず } ELSE { ShowMessage('OK','test',0); }; }; #KEY SHIFT+K { IF (#valval<>0) THEN { ShowMessage('error?','test',0); // 0のはず } ELSE { ShowMessage('OK','test',0); }; };
また、#PREKEY内で、後述するExit()・ExitProc()・Return()手続きを使用すると、続く#KEYの実行はキャンセルされます。
例) #PREKEY { // Kが押されたら何もしないで終わる IF (#_KEYMODE==1 AND #_KEYCODE=0x4B AND #_SHIFTKEY<>0 AND #_CTRLKEY<>0 AND #_ALTKEY<>0) THEN { Exit(); }; } #KEY K { ShowMessage('error?','test',0); // 実行されないはずだ? }; #KEY SHIFT+K { ShowMessage('OK','test',0); };
このセクションは、定義されたキーが押されると常に呼ばれます。その分処理が重くなってしまいます。特に必要がないのであれば、このセクションは指定しない方がSASFの動作が多少軽くなります。