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


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0201
メルヘンちゃん新しい命令(^艸^)7解決


メルヘンちゃん

リンク

2019/2/1(Fri) 21:11:41|NO.86454

ひとつの命令が指定した時間以上処理を完了出来なかったら特定のラベルに移動する
という命令があればいいと思います!(^_^)/~~ピシーピシー



この記事に返信する


Mc.H

リンク

2019/2/9(Sat) 14:45:37|NO.86512

oncmd
onkey
onexit
onclick
onerror
に次いで
ontimeout
ですか
意外と使えそう...

タイムアウト時にジャンプ

ontimeout goto/gosub *label, time

*label : ラベル名
time : タイムアウト制限時間



kanamaru

リンク

2019/2/9(Sat) 16:14:30|NO.86514

モジュールで作れないかなと思ったんですけど、
一応それっぽいものはできました。
・user32.dllを使っているのでwindowsでしか使えない
・一個しか設定できない(ontimeoutで指定したラベルに飛んだ後ならまた使える)
・ontimeout以降の行が実行されない。
という問題があります。
それでもいいなら公開します



小泉優也

リンク

2019/2/9(Sat) 16:28:05|NO.86516

>>ontimeout以降の行が実行されない
これちょっと困りますね。
改良したいので一旦公開していただけませんか?



kanamaru

リンク

2019/2/9(Sat) 17:04:38|NO.86518

改良できるようだったらお願いします。
原因がわかったら教えてください。

#module ontimer #uselib "user32.dll" #func SetTimer "SetTimer" int, int, int, int #func KillTimer "KillTimer" int, int #deffunc ontimeout2 var l,int time oncmd *ontimer,0x113 SetTimer hwnd, id+30, time, 0 stop *ontimer KillTimer hwnd,id goto l return #define global ontimeout(%1,%2) label@ontimer=%1:ontimeout2 label@ontimer,%2:id@ontimer++ #global



kanamaru

リンク

2019/2/9(Sat) 17:06:23|NO.86519

書き忘れましたが、タイムアウトまでの時間の単位はミリ秒です。



kanamaru

リンク

2019/2/10(Sun) 16:13:08|NO.86536

バグの一つが修正できました。
ontimeout以降の行が実行されるようになりました。

#module ontimer #uselib "user32.dll" #func SetTimer "SetTimer" int, int, int, int #func KillTimer "KillTimer" int, int #deffunc ontimeout2 var l,int time oncmd *ontimer,0x113 SetTimer hwnd, id+30, time, 0 return *ontimer KillTimer hwnd,id goto label return #define global ontimeout(%1,%2) label@ontimer=%1:ontimeout2 label@ontimer,%2:id@ontimer++ #global



kanamaru

リンク

2019/2/10(Sun) 16:39:55|NO.86537

バグが一つ減らせました。
ontimeoutを複数使えるようになりました。

#module ontimer #uselib "user32.dll" #func SetTimer "SetTimer" int, int, int, int #func KillTimer "KillTimer" int, int #deffunc ontimeout2 var l,int time if(id=0):oncmd *ontimer,0x113 SetTimer hwnd, id+30, time, 0 la(id) = l return *ontimer KillTimer hwnd,wparam goto la(wparam-30) return #define global ontimeout(%1,%2) label@ontimer=%1:ontimeout2 label@ontimer,%2:id@ontimer++ #global



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