ここから本文です

hsp3.2のwaitのことについて質問ですが、

lim********さん

2010/7/2316:32:30

hsp3.2のwaitのことについて質問ですが、

wait 300
repeat 10
mes cnt
wait 100
loop
stop

のように入力すると、通常だったら起動して3秒たつと数字が0から順に9まで表示されます。
しかし、プログラムを実行した直後に、実行したプログラムのウィンドウをドラッグし続けると、明らかに3秒以上たっているはずなのに数字が表示されません。
また、数字が表示されてからウィンドウをドラッグし続けても、ドラッグしている間は数字が動きません。ドラッグをやめると再開されて数字が表示されていきます。

これは仕方のないことなのでしょうか?

長文&駄文で、読みづらいと思いますが、どうぞご教授願います。

閲覧数:
558
回答数:
4

違反報告

ベストアンサーに選ばれた回答

ino********さん

2010/7/2715:01:08

Windows の仕様というか、HSPがシングルスレッドなため
ウィンドウメッセージを処理するスレッドとHSPを実行・処理するスレッドが同じ
なのでこの現象がおきます。
無限ループ(repeat ~ loop)を発生させ、(応答なし)がタイトルバーに出るのも
ウィンドウメッセージが処理されず、Windows が応答がないものと判断してしまうからです。

解決方法としては、ウィンドウタイマーを使う方法があります。
ウィンドウの移動中(ドラッグ)でも指定したラベルの処理が行われるようになります。
http://yokohama.cool.ne.jp/chokuto/advanced/usertimer.html

質問した人からのコメント

2010/7/27 23:59:53

降参 仕様だとあきらめていたのですが、このサイトに書いてあった方法でやってみたらちゃんとできました!
本当にありがとうございます。
すごく助かりました。

みなさま、ご回答ありがとうございました。

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

so_********さん

2010/7/2718:48:28

仕様ですよ諦めましょう。

雪野 兎さん

2010/7/2414:50:43

ドラッグ中に内部処理が停止してしまうのは、
HSPの問題ではなくWindowsの仕様で仕方のないことです。

タイトルバーがないbgscrでスクリーンを生成しましょう。

bgscr 0, ginfo_dispx, ginfo_dispy, , 0, 0
button "終了", *exit
stop

*exit
end

ドラッグしている間止まってしまうのは仕方がないと思います。
しかし一応HSPTV掲示板で質問したらどうでしょうか?
http://hsp.tv/play/pforum.php

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる