その間も処理を続けたい・・・ということで調べたのですが理想的なものが出てきません。
前に調べた時は自然に処理が続行方法があった気がしたのですが、
今調べるとウィンドウタイマーを使って割り込ませる方法しか出てきません。
これだとドラッグした瞬間は処理が止まってしまいます。
それなら妥協してとりあえず組み込もう・・・と思ってやったのですが、
やりたい処理は「ループ中にある値が代入されるとbreakでループを抜ける」という物です。
ドラッグ中は割り込み処理で*OnTimerの処理はされるのですが、戻ってきてもループ内の処理はされないので意味がありません。
#uselib "user32.dll" #func SetTimer "SetTimer" int,int,int,int #func KillTimer "KillTimer" int,int #define WM_TIMER 0x0113 oncmd gosub *OnTimer, WM_TIMER onexit goto *OnQuit SetTimer hwnd, 1, 100, 0 repeat if cnt=10:break title ""+cnt await 500 loop stop *OnTimer ; ====== タイマーメッセージの処理 ====== return *OnQuit ; ====== 終了時の処理 ====== ; タイマーを破棄 KillTimer hwnd, TIMER_ID end
じゃあ*OnTimerにループ内の処理を書こう、と思いやったのですがそれだとbreakが使えない・・・
(コンパイルの段階で「 repeatループ外でbreakが使用されました」とエラーが出る。)
前はもっといい方法があった気がするのですが、もし知っている方が居ましたら教えて下さい。