ポク太郎です。
UWSCでブラウザ操作しよう→手間取ってなかなか進まないので、先にデバッグを加速させるための関数を作りました。
変数・その他をメッセージとして吹き出しに表示・クリップボードに転送するものです。
変数や必要情報を表示する関数disp(txt,col)関数
プログラムの現在走ってる行・変数の値を分かりやすくするため、すぐ表示できるようメッセージ表示関数を作っておきます。特にUWSCではステップ実行環境が無いので。
UWSC標準命令
吹き出し消す:FUKIDASI()…引数なしなら吹き出し削除。
吹き出し表示:FUKIDASI(メッセージ,x,y,[向き,フォントサイズ,フォント名,文字色,背景色,透明化])
吹き出し消す:FUKIDASI()…引数なしなら吹き出し削除。
吹き出し表示:FUKIDASI(メッセージ,x,y,[向き,フォントサイズ,フォント名,文字色,背景色,透明化])
FUNCTION disp(txt,col)
IF txt=""
FUKIDASI()//吹き出し消去
ELSE
SELECT col
CASE "blue"
FUKIDASI(txt,0,50,0,,,$FFFFFF,$CC0000)
CASE "green"
FUKIDASI(txt,0,50,0,,,$FFFFFF,$008800)
CASE "yellow"
FUKIDASI(txt,0,50,0,,,$000000,$00CCEE)
CASE "gray"
FUKIDASI(txt,0,50,0,,,$FFFFFF,$555555)
SELEND
ENDIF
RESULT=1
FEND
1,17 行目 |
1 17 |
FUNCTION disp(txt,col) FEND |
disp(txt,col)関数宣言:吹き出し内にメッセージを表示する関数。 引数txt:メッセージの内容 引数col:吹き出しの色(”blue”、”green”、”yellow”、”gray”) |
||
2,4,15 行目 |
2 4 15 |
IF txt=““ ELSE ENDIF |
条件分岐:引数txtが空白の場合は吹き出しを消す仕様とします。 ○⇒:吹き出し消す(3行目) ×⇒:吹き出し表示(5~14行目) |
||
3 行目 |
3 | FUKIDASI()//吹き出し消去 |
UWSC命令:FUKIDASI()(引数なしで呼び出すと吹き出しを消します。) | ||
5~14 行目 |
5 6 7 8 9 10 11 12 13 14 |
SELECT col CASE “blue“ FUKIDASI(txt,0,50,0,,,$FFFFFF,$CC0000) CASE “green“ FUKIDASI(txt,0,50,0,,,$FFFFFF,$008800) CASE “yellow“ FUKIDASI(txt,0,50,0,,,$000000,$00CCEE) CASE “gray“ FUKIDASI(txt,0,50,0,,,$FFFFFF,$555555) SELEND |
吹き出しを表示する部分。引数colによって分岐します。 UWSC命令:FUKIDASI(メッセージ,x,y,[向き,フォントサイズ,フォント名,文字色,背景色,透明化])はメッセージの表示された吹き出しを表示する。 |
||
16 行目 |
16 | RESULT=1 |
関数の戻り値として1を返します。 |
マウス座標をクリップボードへ送る関数
作成&デバッグ時に画像の位置など即座に知りたい場合が多々あります。マウスの位置の座標を表示させ、クリックと同時にクリップボードにコピーする関数を作りました。
UWSC標準命令
クリップボードへ出力:SENDSTR(0,テキストデータ)
クリップボード内情報:GETSTR(0)
クリップボードへ出力:SENDSTR(0,テキストデータ)
クリップボード内情報:GETSTR(0)
FUNCTION disp_mousexy()
WHILE (0=0)
txt="x:"+G_MOUSE_X+" y:"+G_MOUSE_Y
FUKIDASI(txt,G_MOUSE_X,G_MOUSE_Y,3,,,$FFFFFF,$CC0000,100)
IF GETKEYSTATE(VK_LBUTTON)=true
SENDSTR(0,txt)
break
ENDIF
SLEEP(0.01)
WEND
RESULT=txt
FEND
1,12 行目 |
1 12 |
FUNCTION disp_mousexy() FEND |
disp_mousexy()関数宣言:マウスのの現在の座標を表示し、クリックされると座標をクリップボードへコピーされるデバッグ用関数。 | ||
2,9~10 行目 |
2 9 10 |
WHILE (0=0) SLEEP(0.01) WEND |
マウスのボタンクリックされるまでループします。 PCの全性能を使用する必要はないのでsleep(0.01)と休止期間を入れました。 |
||
3,4 行目 |
3 4 |
txt=“x:“+G_MOUSE_X+“ y:“+G_MOUSE_Y FUKIDASI(txt,G_MOUSE_X,G_MOUSE_Y,3,,,$FFFFFF,$CC0000,100) |
変数txtにクリップボード、および、関数の戻り値に使用する現在の座標データを代入。そのデータをマウスの現在位置に吹き出しとして表示します。 | ||
5~8 行目 |
5 6 7 8 |
IF GETKEYSTATE(VK_LBUTTON)=true SENDSTR(0,txt) break ENDIF |
条件分岐:マウスがクリックされたかどうかを判定。 ○⇒:6行目を実行してループ抜ける。 ×⇒:何もしない UWSC命令:GETKEYSTATE(キー内容)は入力されたキーを検出。 UWSC命令:SENDSTR(アプリID,テキストデータ)はテキストデータをアプリIDのアプリへ送る。(アプリIDに0を指定するとクリップボードへ。) ちなみに、UWSC命令:GETSTR(0)でクリップボードの値を取得します。 |
||
11 行目 |
11 | RESULT=txt |
関数の戻り値として変数txt(関数内部で作成したクリックされたときの座標データ)を返す。 |
本記事の内容は以下でした。
○デバッグのための関数
○デバッグのための関数
変数や必要な情報を吹き出し表示させる関数
マウスの座標をクリップボードへ送る関数
マウスの座標をクリップボードへ送る関数
コメント