HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0526
サラダループ外でのキーボード操作待機3解決


サラダ

リンク

2020/5/26(Tue) 00:09:39|NO.90639

かなり初歩的な質問で申し訳ありません。
キーボード入力を取得して処理を実行するとき、
例1のようにループ内に書かないとダメでした。
これはキーボード操作をさせたい場合は絶えずループさせておけということでしょうか?
入力があるまで処理を止めておく、といったことはできませんか?

//例1(escキー押下で閉じる) *main getkey esc, 27 if esc = 1 : end wait 50 goto *main //例2(escキー押下に反応しない) getkey esc, 27 if esc = 1 : end stop



この記事に返信する


窓月らら

リンク

2020/5/26(Tue) 00:29:11|NO.90641

onkeyを使う方法があります。
ただし割り込みなので割り込まれては困る場合は onkey 0 を指定するなどの工夫が必要です。

onkey gosub *keys mes "キー入力待ち。" stop *keys mes "iparam="+iparam+" wparam="+wparam+" lparam="+lparam return



あらや

リンク

2020/5/26(Tue) 00:30:35|NO.90642

stopで待機するならon〜系の割り込み処理が良いかと。
キー入力ならばonkeyでどうでしょうか。


onkey gosub *pushkey; stop; *pushkey // ESCキーを押した時は終了 if( iParam == 27 ) { end; } // その他のキーの場合は戻る return;



サラダ

リンク

2020/5/26(Tue) 02:04:47|NO.90647

なんと……。
まさにそのための命令が用意されているにも関わらず、
見落としていたとはお恥ずかしい限りです。

お二方のおかげで即座に解決しました。
ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.