UWSCという開発ソフトを使って作り上げる作業を実際にやってみるカテゴリ。準備した自作関数や使い方、トラブルを記事にしていきます。得るものがあれば幸いです。
UWSCからfirefoxやchromeを操作するための準備をしています。今回は、作成&デバッグの効率を上げるためのデバッグ関数を作りました。
UWSCからfirefoxやchromeを操作するための準備をしています。今回は、作成&デバッグの効率を上げるためのデバッグ関数を作りました。
記事の内容
○デバッグのための関数
○デバッグのための関数
変数や必要な情報を表示させる関数
マウスの座標をクリップボードへ送る関数
マウスの座標をクリップボードへ送る関数
ポク太郎です。
UWSCでfirefoxやchromeを操作しようとしているのですが、準備に手間取っているので、先に作成&デバッグを加速させるための関数を作りました。
変数や必要な情報を表示させる関数
プログラムが今どこを走っているのかや変数の値を人間に分かりやすくするため、メッセージとして表示させることが多々あると思います。特にUWSCではステップ実行の機能が無いのでデバッグ用としても多用します。そのためすぐ表示できるようメッセージ表示関数を作っておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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を返します。 |
マウスの座標をクリップボードへ送る関数
作成&デバッグ時ですが、画像の位置など即座に知りたい場合が多々あります。マウスの位置の座標を表示させ、クリックと同時にクリップボードにコピーする関数を作りました。
1 2 3 4 5 6 7 8 9 10 11 12 | 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(関数内部で作成したクリックされたときの座標データ)を返す。 |
記事の内容は伝わりましたでしょうか。
○デバッグのための関数
○デバッグのための関数
変数や必要な情報を表示させる関数
マウスの座標をクリップボードへ送る関数
マウスの座標をクリップボードへ送る関数
コメント