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


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
0122
yunebutton gosubを使用するとエラーが表示されなくなる3解決


yune

リンク

2021/1/22(Fri) 23:27:58|NO.92128

バグなのかどうかもわからないので質問させてください

例えば

exist stop
を実行すると最初のexistの部分でパラメータの省略はできませんといったエラーダイアログが表示されますが

button gosub "test",*a stop *a exist return
とするとボタンを押したときにエラーが表示されずにプログラムが強制終了します


button "test",*a stop *a exist stop
これだとボタンを押したときにエラーが表示されます


button goto "test",*a stop *a exist stop
これでもボタンを押したときにエラーが表示されます


gosub *a stop *a exist return
これでも表示されます

HSP3.51、3.6b4で同様の動作であるのを確認しました
エラーが表示されないだけで処理自体は正常に行われているようなのですが
不便なのでどなたか解決方法をお願いします



この記事に返信する


MillkeyStars

リンク

2021/1/23(Sat) 10:50:14|NO.92132

この場合の exist の利用は、意図しているので合ってますよ。
(業とエラーを発生させる目的なので)

ボタンを押した際にエラー音は鳴っていますか?
鳴っている場合、ダイアログの表示は正常に動作しています。



沢渡

リンク

2021/1/23(Sat) 10:56:36|NO.92133

私の環境ではbutton gosubの飛び先でエラーを発生させると
普通にエラー5になりましたが、環境の問題でしょうか?
(当方はWindows10の64bitです)
そういえばonexit gosubでも似たようなケースが発生したのを思い出しましたが、
gosubでの割り込みで発生する症状なのでしょうか。
対策としては、こんな感じ↓でbutton gosubの飛び先ではフラグだけを立て、
無限ループの中でフラグをチェックして、改めて本命のサブルーチンに
飛ばすようにすることでしょうか。

button gosub "test",*a0 flag=0 repeat if flag : gosub *a : flag=0 await 1000 loop end *a0 flag=1 //フラグだけを立ててreturn return *a //本命のサブルーチン exist //ワザとエラー return
ただ「不便だからどうにかしたい」という話ですから、
コードが煩雑になるようでは本末転倒かもしれませんが。



yune

リンク

2021/1/24(Sun) 04:45:54|NO.92143

エラーが表示されない時はエラー音も鳴りません
イベントビュアーで見るとhsp3のエラーとして記録されます
とりあえず自分の環境依存だということがわかったので助かりました
色々と試していたのですがエディタが正常に終了しない、oncmd gotoが正常に動作しないなど他にもおかしな所が見つかったので
なるべくbutton gosubを使わないようなソースにして必要なときには沢渡さんの方法を使わせてもらい
時間があるときに環境を見直そうと思います
ありがとうございました



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.92128への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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