- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
{{category 開発情報}}
!!!【NS Basic/Palm】イベントキューのクリア
*NS Basicでイベントキューに溜まったイベントをクリアする方法について説明します。
!!概要
プログラムの処理が長時間かかると、その間にアプリケーションボタン操作や画面のタップをしてしまう事があります。
これらの情報はOSのイベントキューに溜め込まれ、処理終了後にイベントルーチンにて処理されてしまいます。
しかし、実際は前の処理の実行中に発生したイベントを処理したくない場合があります。
そういう場合、前の処理が終了する段階でイベントキューをクリアする事で解決する事ができます。
!!イベントキューをクリアする方法
PalmOSのAPIには、EvtFlushPenQueueやEvtFlushKeyQueueといった、イベントキューをクリアするためのAPIが用意されていますので、NS Basicからこれらをコールする事で、イベントキューをクリアできます。
実際にはキューをクリアしたい箇所に以下のコードを書いてください。
SysTrapSub 293,0'-- EvtFlushPenQueue
SysTrapSub 300,0'-- EvtFlushKeyQueue
SysTrapSubはAPIのサブルーチンをコールするための命令です。
APIの番号293がEvtFlushPenQueue、300がEvtFlushKeyQueueです。
!!注意点
NS Basicの標準機能ではなく、あくまでもOSのAPIにて実現している機能ですので、何らかの不具合が発生しても、NS Basicの手に負えない場合があります。
また、今後のOSのバージョンアップ等で仕様が変更される可能性も(まず無いとは思いますが)否定できません。
この機能を使用する場合、必ずその事を念頭におきましょう。
!!コメント
このページの情報に関する誤りや追加情報がありましたら、コメントをお願いします。
{{comment}}