2017年7月14日金曜日

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

UWSCという開発ソフトを使って作り上げる作業を実際にやってみるカテゴリ。準備した自作関数や使い方、トラブルを記事にしていきます。得るものがあれば幸いです。
UWSCからfirefoxやchromeを操作するための準備をしています。今回は、作成&デバッグの効率を上げるためのデバッグ関数を作りました。

記事の内容

○デバッグのための関数
変数や必要な情報を表示させる関数
マウスの座標をクリップボードへ送る関数

スマホで閲覧されている方へ
このブログは画面横幅を広くしてあります。スマホ解像度での閲覧は厳しいと思いますので、ウェブバージョンへどうぞ。

ポク太郎です。
UWSCでfirefoxやchromeを操作しようとしているのですが、準備に手間取っているので、先に作成&デバッグを加速させるための関数を作りました。


変数や必要な情報を表示させる関数

プログラムが今どこを走っているのかや変数の値を人間に分かりやすくするため、メッセージとして表示させることが多々あると思います。特にUWSCではステップ実行の機能が無いのでデバッグ用としても多用します。そのためすぐ表示できるようメッセージ表示関数を作っておきます。
disp(txt,col)関数
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を返します。


マウスの座標をクリップボードへ送る関数

作成&デバッグ時ですが、画像の位置など即座に知りたい場合が多々あります。マウスの位置の座標を表示させ、クリックと同時にクリップボードにコピーする関数を作りました。
disp_mousexy()関数
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(関数内部で作成したクリックされたときの座標データ)を返す。


記事の内容

記事の内容は伝わりましたでしょうか。
○デバッグのための関数
変数や必要な情報を表示させる関数
マウスの座標をクリップボードへ送る関数


【関連記事】
[UWSC]firefoxやchromeの開かれているタブ数を得る関数
人気![UWSC]firefoxやchromeでタブを作ってページを開く関数
人気![UWSC]firefoxやchromeを操作できるか試してみる関数


スポンサーリンク



↓ ランキングに参加しています!(Ctrlキーを押しながら) ↓

blogramのブログランキング

ポク太郎の「俺の説明聞いてくれ」 コンテンツ
ポク太郎の「俺の説明聞いてくれ」最キラー記事 IT関連
電気回路やプログラムの記事。元々のメインコンテンツ。
UWSC奮闘記
プログラミングのできる子に
デジタルの世界って
映画・ドラマ・芸能
ハリウッドが主のエンターテイメントの記事。最近は似顔絵多し。
戦士の息抜き
ブログ運営
AnalyticsやSerchConsolなどの使い方、アクセスアップに関する話題。
アドセンス関連
他のGoogleツール
その他
アホのもくろみ
アホの雑記
取りとめもなく好き勝手に書く記事。不本意にも一番人気だったり。
役に立つかも
休むに似たり
好き勝手に書く
落書き漫画
何故人気なのか全く解らない数コマ漫画。結局最大コンテンツに。
物思いに耽る
免責事項 ホームへ戻る

スポンサーリンク





0 件のコメント:

コメントを投稿