GUI#
ダイアログ#
- msgbox(メッセージ[, ボタン種=BTN_OK, x=EMPTY, y=EMPTY, フォーカス=EMPTY, リンク表示=FALSE])#
- メッセージボックスを表示しますクラス名 メッセージボックスのクラス名はUWSCR.MsgBoxです- パラメータ:
- メッセージ (文字列) -- ダイアログに表示するメッセージ 
- ボタン種 (ボタン定数 省略可) -- - 表示するボタンを示す定数、 - OR連結で複数表示- BTN_YES
- はい 
 - BTN_NO
- いいえ 
 - BTN_OK
- OK 
 - BTN_CANCEL
- キャンセル 
 - BTN_ABORT
- 中止 
 - BTN_RETRY
- 再試行 
 - BTN_IGNORE
- 無視 
 
- x (数値 省略可) -- ダイアログの初期表示位置のX座標を指定、省略時(EMPTY)なら画面中央 
- y (数値 省略可) -- - ダイアログの初期表示位置のY座標を指定、省略時(EMPTY)なら画面中央 - 前回表示位置に表示 x, yに-1を指定するとそれぞれ前回表示した位置になります
- フォーカス (ボタン定数 省略可) -- カーソルの初期位置をボタン定数で指定、省略時や該当ボタンがない場合は一番左のボタンがフォーカスされます 
- リンク表示 (真偽値 省略可) -- TRUEであればURLをクリック可能なリンクにする 
 
- 戻り値:
- 押されたボタンを示すボタン定数 (×ボタンで閉じられた場合は - BTN_CANCEL)
 
- input(メッセージ[, デフォルト値=EMPTY, マスク表示=FALSE, x=EMPTY, y=EMPTY])#
- インプットボックスを表示しますクラス名 インプットボックスのクラス名はUWSCR.Inputです- パラメータ:
- メッセージ (文字列または配列) -- - 文字列
- メッセージ欄に表示されるメッセージ 
 - 文字列の配列
- 1番目がメッセージ欄に表示される2番目以降はラベルとして表示され、ラベル毎に入力欄が追加されるラベルは最大5つまで
 
- デフォルト値 (文字列または配列 省略可) -- - 文字列
- 入力欄に予め入力しておく値 
 - 文字列の配列
- 入力欄毎のデフォルト入力値 
 
- マスク表示 (真偽値または配列 省略可) -- - 真偽値
- 入力欄をマスク表示するかどうか 
 - 真偽値の配列
- 入力欄毎のマスク設定 
 
- x (数値 省略可) -- ダイアログの初期表示位置のX座標を指定、省略時(EMPTY)なら画面中央 
- y (数値 省略可) -- - ダイアログの初期表示位置のY座標を指定、省略時(EMPTY)なら画面中央 - 前回表示位置に表示 x, yに-1を指定するとそれぞれ前回表示した位置になります
 
- 戻り値:
- 入力欄が一つの場合
- 入力された値、キャンセル時はEMPTY 
 - 入力欄が複数の場合
- それぞれに入力された値の配列、キャンセル時は空配列 
 
 サンプルコード // ラベルを2つ指定し入力欄を2つにする labels = ['ログイン', 'ユーザー名', 'パスワード'] // 1つ目の入力欄のみデフォルト値を入れる default = ['UserA', EMPTY] // 2つ目の入力欄がマスクされるようにする mask = [FALSE, TRUE] // 入力値は配列で返る user = input(labels, default, mask) print 'ユーザー名: ' + user[0] print 'パスワード: ' + user[1] ファイルのドラッグアンドドロップについて インプットボックスに対してExplorerなどからファイルをドラッグアンドドロップすると、そのファイルのパスが入力されます複数ファイルをドロップした場合はパスがタブ文字で連結されて入力されます入力欄が複数ある場合は、ドロップした入力欄にパスが挿入されます入力欄以外にドロップされた場合は一つ目の入力欄にパスが入ります
- slctbox(表示方法, タイムアウト秒, メッセージ=EMPTY, 表示項目[, 表示項目2, ..., 表示項目31])#
- slctbox(表示方法, タイムアウト秒, x, y, メッセージ=EMPTY, 表示項目[, 表示項目2, ..., 表示項目29])
- セレクトボックスを表示しますクラス名 セレクトボックスのクラス名はUWSCR.SlctBoxです引数x, yについて 第3、第4引数が数値であった場合はx, yが指定されたものとします"100" など数値に変換できる文字列であってもここでは数値として扱われませんx, yの有無による表示項目として渡せる引数の数が変わります- パラメータ:
- 表示方法 (SLCT定数) -- - 項目の表示方法および戻り値の形式を示す定数 表示方法と戻り値の形式をそれぞれ一つずつ- ORで連結できます表示方法- SLCT_BTN
- ボタン 
 - SLCT_CHK
- チェックボックス 
 - SLCT_RDO
- ラジオボタン 
 - SLCT_CMB
- コンボボックス 
 - SLCT_LST
- リストボックス 
 戻り値の形式- SLCT_STR
- 項目名を返す 
 - SLCT_NUM
- インデックス番号で返す 
 
- タイムアウト秒 (数値) -- 指定秒数経過で自動的にダイアログを閉じる (キャンセル扱い)、0ならタイムアウトなし 
- x (数値 省略可) -- ダイアログの初期表示位置のX座標を指定、省略時(EMPTY)なら画面中央 
- y (数値 省略可) -- - ダイアログの初期表示位置のY座標を指定、省略時(EMPTY)なら画面中央 - 前回表示位置に表示 x, yに-1を指定するとそれぞれ前回表示した位置になります
- メッセージ (文字列 省略可) -- メッセージ欄に表示されるメッセージ 
- 表示項目 (文字列または配列) -- 表示される項目名、または項目名を格納した配列 
- 表示項目2-31 (文字列または配列) -- 表示される項目名、または項目名を格納した配列 
 
- 戻り値:
- SLCT_NUMおよび- SLCT_STR未指定時選択項目に応じた定数が返るn番目の項目が選ばれれば- SLCT_n- SLCT_1から- SLCT_31まで- SLCT_CHK, SLCT_LST 以外
- 選択項目を示す値が返る
 - SLCT_CHK, SLCT_LST 指定時
- 選択項目の値が合算される例 3番目と5番目が選ばれた場合 SLCT_3 or SLCT_5が返る
 - 警告 - 表示項目の配列指定で項目数が31を超える場合に、32個目以上を選択するとエラーになります - SLCT_NUM指定時- SLCT_CHK, SLCT_LST 以外
- 選択位置のインデックス値(0から)が返る
 - SLCT_CHK, SLCT_LST 指定時
- 選択位置のインデックス値を格納した配列
 - 注釈 - 項目数が31を超えてもOK - SLCT_STR指定時- SLCT_CHK, SLCT_LST 以外
- 選択した項目の表示名
 - SLCT_CHK, SLCT_LST 指定時
- 選択した項目の表示名を格納した配列
 - 注釈 - 項目数が31を超えてもOK キャンセル時- -1を返す
 UWSCとの違い - タイムアウト時の戻り値が0ではなく - -2になった
- 表示項目に連想配列を渡した場合、値でなはくキーが表示される 
- SLCT_CHK,- SLCT_LST指定時の戻り値がタブ文字連結された文字列ではなく配列になった
 
- ポップアップメニューを表示します- パラメータ:
- メニュー項目 (配列) -- 表示項目を示す配列、要素が配列の場合サブメニューになる 
- x (数値 省略可) -- メニュー表示位置のX座標を指定、省略時(EMPTY)はマウスカーソル位置 
- y (数値 省略可) -- メニュー表示位置のY座標を指定、省略時(EMPTY)はマウスカーソル位置 
 
- 戻り値:
- 選択した項目の表示名、メニューの外側を選んだ場合はEMPTY 
 サンプルコード // サブメニュー表示方法 list = ["項目1", "項目2", "サブメニュー", ["サブ項目1", "サブ項目2"], "項目3"] // 要素を配列にすると直前の項目のサブメニューになる selected = popupmenu(list) // 項目1 // 項目2 // サブメニュー > サブ項目1 // サブ項目2 // 項目3 // ネストも可能 list = ["menu", ["branch1", "branch2", ["leaf1", "leaf2"]]] popupmenu(list) UWSCとの違い - メニュー項目に連想配列を渡した場合、値ではなくキーが表示されます 
- メニュー項目を選んだ場合の戻り値が項目のインデックス値ではなく選択項目の表示名になりました 
- メニュー項目外を選んだ場合の戻り値が-1ではなくEMPTYになりました 
 
メッセージ表示#
- balloon(メッセージ[, X=0, Y=0, 変形=FUKI_DEFAULT, フォントサイズ=EMPTY, 文字色=$000000, 背景色=$00FFFF, 透過=0])#
- fukidasi(メッセージ[, X=0, Y=0, 変形=FUKI_DEFAULT, フォントサイズ=EMPTY, 文字色=$000000, 背景色=$00FFFF, 透過=0])#
- 吹き出しを表示します- パラメータ:
- メッセージ (文字列) -- 表示するメッセージ 
- X (数値 省略可) -- 表示位置 (X座標) 
- Y (数値 省略可) -- 表示位置 (Y座標) 
- 変形 (定数 省略可) -- - 変形方法を示す定数を指定 - FUKI_DEFAULT
- 変形しない
 - FUKI_UP
- 吹き出しに上向きの嘴を付ける
 - FUKI_DOWN
- 吹き出しに下向きの嘴を付ける
 - FUKI_LEFT
- 吹き出しに左向きの嘴を付ける
 - FUKI_RIGHT
- 吹き出しに右向きの嘴を付ける
 - FUKI_ROUND
- 吹き出しの角を丸くする
 - FUKI_POINT
- 嘴定数に加えることで、表示位置の基準を吹き出しの左上ではなく嘴の先にするballoon("マウスカーソル位置が吹き出しの左上", G_MOUSE_X, G_MOUSE_Y, FUKI_DOWN) sleep(2) balloon("マウスカーソル位置に嘴を向ける", G_MOUSE_X, G_MOUSE_Y, FUKI_DOWN or FUKI_POINT) sleep(2) 
 
- フォントサイズ (数値 省略可) -- 表示される文字のサイズ、EMPTY時はフォント設定に従う 
- フォント名 (数値 省略可) -- 表示される文字のフォント、EMPTY時はフォント設定に従う 
- 文字色 (数値 省略可) -- 文字の色をBGR値で指定、省略時は黒 
- 背景色 (数値 省略可) -- - 背景の色をBGR値で指定、省略時は黄色 - ヒント - BGRの例 - 青: - $FF0000
- 緑: - $00FF00
- 赤: - $0000FF
- 白: - $FFFFFF
- 黒: - $000000
- 黄: - $00FFFF
 - UWSCとの違い 色指定を0にした場合、黄色ではなく黒になります
- 透過 (数値 省略可) -- - ウィンドウを透過させます - 0: 透過させない 
- 1~255: 数値が大きいほど透明度が高い 
- -1: 背景を透明にするが枠線は残る 
- -2: 背景と枠線を透明にする 
 
 
- 戻り値:
- なし 
 吹き出しの表示は1スレッドにつき1つまで 吹き出し表示中にballoon()を呼ぶと、以前の吹き出しは削除され新たな吹き出しが表示されます吹き出し表示中に別のスレッドでballoonを呼んだ場合はそれぞれ表示されます
- logprint(表示フラグ[, X=EMPTY, Y=EMPTY, 幅=EMPTY, 高さ=EMPTY])#
- printウィンドウの表示状態を変更しますprint窓が無効の場合 print窓が無効の場合この関数は無視されます以下のいずれかの場合のみこの関数は有効です- OPTION GUIPRINTがTRUEに指定されている
- 設定ファイルの - options.gui_printがTRUEになっている
- ウィンドウ強制モード( - uwscr --window)で起動している
- UWSCRがguiビルドの場合 
 - パラメータ:
- 表示フラグ (真偽値) -- - TRUE
- print窓を表示する
 - FALSE
- print窓を非表示にする既に表示済みなら消す
 
- X (数値 省略可) -- 表示位置 (X座標)、EMPTYなら現状維持 
- Y (数値 省略可) -- 表示位置 (Y座標)、EMPTYなら現状維持 
- 幅 (数値 省略可) -- 表示サイズ (幅)、EMPTYなら現状維持 
- 高さ (数値 省略可) -- 表示サイズ (高さ)、EMPTYなら現状維持 
 
- 戻り値:
- なし 
 
HTMLフォーム#
- createform(HTMLファイル, タイトル[, 非同期フラグ=FALSE, オプション=FOM_DEFAULT, 幅=EMPTY, 高さ=EMPTY, X=EMPTY, Y=EMPTY])#
- フォームウィンドウを表示しますWebView2 Runtimeが必要です Microsoft Edge WebView2 Runtimeがインストールされていない場合この関数はエラーになりますUWSCとは互換性がありません UWSCではIEコンポーネントを利用していたのに対してUWSCRではWebView2を利用していますそのためUWSCで実行していたコードが動作しない場合があります- パラメータ:
- HTMLファイル (文字列) -- - 表示したいHTMLファイルのパス - ファイルの配置について HTMLファイルから別のファイルを参照する場合、もとのHTMLファイルを起点とした相対パスを指定します- C:\Test\
- form.html
- js\
- form.js 
 
 
- css\
- form.css 
 
 
- img\
- form.png 
 
 
 
 
 
 
 - <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>別ファイル参照例</title> <link rel="stylesheet" href="css/form.css"> <script src="js/form.js"></script> </head> <body> <img src="img/form.png"> <form> <input type="submit" value="OK" name="OK"> </form> </body> </html> - html = "c:\test\form.html" r = createform(html, "test") 
- タイトル (文字列) -- ウィンドウタイトル 
- 非同期フラグ (真偽値 省略可) -- - 非同期で実行するかどうか - FALSE: submitボタンが押される、またはウィンドウが閉じられるまで待機する 
- TRUE: 関数実行後にウィンドウが表示されたら制御を返す 
 
- オプション (定数 省略可) -- - 以下の定数の組み合わせ(OR連結)を指定 - FOM_NOICON
- 閉じるボタンを非表示にする
 - FOM_MINIMIZE
- 最小化ボタンを表示する
 - FOM_MAXIMIZE
- 最大化ボタンを表示する
 - FOM_NOHIDE
- submitボタンが押されてもウィンドウを閉じない
 - FOM_NOSUBMIT
- submitボタンが押されてもsubmitに割り当てられた処理(action)を行わない
 - FOM_NORESIZE
- ウィンドウのサイズ変更不可
 - FOM_BROWSER
- 互換性のために残されていますが使用できません (指定しても無視されます)
 - FOM_FORMHIDE
- ウィンドウを非表示で起動する
 - FOM_TOPMOST
- ウィンドウを最前面に固定
 - FOM_NOTASKBAR
- タスクバーにアイコンを表示しない
 - FOM_FORM2
- 互換性のために残されていますが使用できません (指定しても無視されます)
 - FOM_DEFAULT
- オプションなし (0)
 
- 幅 (数値 省略可) -- ウィンドウの幅 
- 高さ (数値 省略可) -- ウィンドウの高さ 
- X (数値 省略可) -- ウィンドウのX座標 
- Y (数値 省略可) -- ウィンドウのY座標 
 
- 戻り値の型:
- Form情報 または Formオブジェクト 
- 戻り値:
- 非同期フラグによる - FALSE: Form情報 
- TRUE: Formオブジェクト 
 
 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Sample.html</title> </head> <body> <form> <div> <span>ユーザー名</span> <input type="text" name="user"> </div> <div> <span>パスワード</span> <input type="password" name="pwd"> </div> <div> <select name="slct"> <option value="foo">foo</option> <option value="bar">bar</option> <option value="baz">baz</option> </select> </div> <div> <textarea name="txt" cols="30" rows="10"></textarea> </div> <div> <input type="submit" value="OK" name="OK"> <input type="submit" value="Cancel" name="Cancel"> </div> </form> </body> </html> r = createform("sample.html", "Sample") select r.submit case "OK" print "OKが押されました" print "formの値は以下です" for data in r.data print data.name + ": " + data.value next case "Cancel" print 'キャンセルされました' case NULL print 'submitされずにウィンドウが閉じられました' selend 
Form情報#
submit時のform情報を示す UObject
// submit時
{
    "submit": $submit, // $submitには押されたsubmitボタンのnameが入る
    "data": [
        // form内の各要素のnameおよびvalueが格納される
        { "name": $name, "value", $value},
    ]
}
// ウィンドウが閉じられた場合
{
    "submit": null, // NULLになる
    "data": []      // 空配列
}
Formオブジェクト#
COMオブジェクトではありません
別スレッドからは呼び出せません
- class Form#
- property Document#
- フォームに表示されているページのdocumentオブジェクト- 戻り値の型:
 
 - Wait()#
- ウィンドウが閉じられるのを待つ// test.htmlにはOKとCancelのsubmitボタンがあるものとする f = createform("test.html", "Test", true) result = f.wait() select result.submit case "OK" for data in result.data print data.name + ": " + data.value next case "Cancel" print "キャンセルされました" case NULL print "ウィンドウが閉じられました" default print "なにかおかしいです" selend 
 - SetVisible([表示フラグ=TRUE])#
- ウィンドウの表示状態を変更する- パラメータ:
- 表示フラグ (真偽値 省略可) -- TRUEで表示、FALSEで非表示 
- 戻り値:
- なし 
 
 - Close()#
- ウィンドウを閉じる- 戻り値:
- なし 
 
 - SetEventHandler(エレメント, イベント, 関数)#
- 任意のイベント発生時に実行する関数を登録します関数は引数を2つまで受けられます、内訳は以下の通りです- イベント発生エレメントのvalue値 
- イベント発生エレメントのname属性値 
 - パラメータ:
- エレメント (WebViewRemoteObject) -- イベント発生元のエレメントを示す WebViewRemoteObject 
- イベント (文字列) -- イベント名 
- 関数 (ユーザー定義関数) -- イベント発生時に実行される関数 
 
- 戻り値:
- なし 
 f = createform("test.html", "Test", true) select = f.document.querySelector("select") f.SetEventHandler(select, "change", on_select_change) button = f.document.querySelector("input[type=button]") f.SetEventHandler(button, "click", on_button_click) f.wait() // 1つ目の引数でイベント発生エレメントのvalue // 2つ目の引数でnameを受ける procedure on_select_change(value, name) print value print name fend // 引数は必須ではない procedure on_button_click() print "クリックされました" fend 
 
WebViewRemoteObject#
組み込みウィンドウのクラス名一覧#
| 関数名 | クラス名 | 定数 | 
|---|---|---|
| msgbox | UWSCR.MsgBox | CLASS_MSGBOX | 
| input | UWSCR.Input | CLASS_INPUTBOX | 
| slctbox | UWSCR.Slctbox | CLASS_SLCTBOX | 
| popupmenu | UWSCR.Popup | CLASS_POPUPMENU | 
| balloon | UWSCR.Balloon | CLASS_BALLOON | 
| logprintwin | UWSCR.LogPrintWin | CLASS_LOGPRINTWIN | 
| createform | UWSCR.Form | CLASS_FORM |