UWSC|情報の吹き出し表示とクリップボードへ転送する関数

ポク太郎です。

UWSCでブラウザ操作しよう→手間取ってなかなか進まないので、先にデバッグを加速させるための関数を作りました。

変数・その他をメッセージとして吹き出しに表示・クリップボードに転送するものです。


変数や必要情報を表示する関数disp(txt,col)関数

プログラムの現在走ってる行・変数の値を分かりやすくするため、すぐ表示できるようメッセージ表示関数を作っておきます。特にUWSCではステップ実行環境が無いので。

UWSC標準命令
吹き出し消す: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)
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(関数内部で作成したクリックされたときの座標データ)を返す。
本記事の内容は以下でした。
○デバッグのための関数

変数や必要な情報を吹き出し表示させる関数
マウスの座標をクリップボードへ送る関数

コメント

タイトルとURLをコピーしました