XScript マニュアル · Chapter 32

GUI — ビュー / コントロール制御

GUI はスクリプトから画面とコントロールを操作するグローバルオブジェクトです。ビュー切替、 ダイアログ、コントロールプロパティ(Visible / Enabled / Text / Color)変更、ログイン制御など UI 関連の全機能がここに集約されています。

実践例

xscript
// 開始ボタン押下を表示
GUI.SetControlBoolProperty("ViewRun", "btnStart", "IsDown", ON);
GUI.SetControlBoolProperty("ViewRun", "btnStop", "IsDown", OFF);
 
// コントロールの非表示/表示
GUI.SetControlVisible("ViewSetup", "tbTimeout", true);
GUI.SetControlVisible("ViewSetup", "pnlSwingOption", false);
 
// 文字色変更(ダーク/ライト両テーマで見えるか要確認)
GUI.SetControlBrushProperty("ViewMain", "lblUnitConnect", "Foreground", "#FFFF0000");
 
// ページ遷移
GUI.ShowPage("BasePanel", "ViewOrder");
 
// 初期化ダイアログ
GUI.ShowInitDialog();
 
// ダイアログを閉じる
GUI.CloseDialog("DlgOrderCancel", true);
 
// ログアウト
GUI.Logout();

主なメソッド

Visible · Enable

シグネチャ説明
bool SetControlVisible(string moduleName, string controlName, bool visible)true Visible / false Collapsed
bool SetControlVisiblity(string moduleName, string controlName, int visibility)整数モード — 0 Visible / 1 Hidden / 2 Collapsed
bool SetControlBoolProperty(string moduleName, string controlName, string propertyName, bool onoff)任意の bool プロパティ

Text · Value

シグネチャ説明
bool SetControlStringProperty(string moduleName, string controlName, string propertyName, string value)文字列プロパティ
bool SetControlDoubleProperty(string moduleName, string controlName, string propertyName, double value)実数プロパティ
bool SetControlIntProperty(string moduleName, string controlName, string propertyName, int value)整数プロパティ
bool SetControlBrushProperty(string moduleName, string controlName, string propertyName, string color)色(Brush)

ビュー切替 · ダイアログ

シグネチャ説明
bool ShowPage(string viewBaseName, string pageName)ビュー切替
bool CloseDialog(string viewModuleName, bool dlgResult)ダイアログを閉じる
void ShowInitDialog(void)初期化ダイアログ

認証

シグネチャ説明
bool Logout(void)現在のユーザをログアウト

グローバル設定

プロパティ説明
GlobalBlinkTimerIntervalintブリンク周期(ms)

共通ダイアログヘルパー(スクリプト全域)

関数説明
ShowMessage(button, messageCode) / ShowMessage(button, text)確認ダイアログ
ShowError(button, errorCode, subMsg)エラーダイアログ
ShowTimerMessage(button, messageCode)自動で閉じるメッセージ

button 定数:EB_OkEB_YesNoEB_OkCancelEB_RetrySkipEB_Reset など。

xscript
if (ShowMessage(EB_YesNo, 210) == ER_No)
{
    return false;
}
ShowError(EB_Reset, 1201, $"{unitName} > Sens:{cnvSensorName}");
ShowTimerMessage(EB_Ok, 215);

ヒント

  • メッセージコードは Message Editor で管理 — スクリプトでは数値のみを参照します。
  • ダーク/ライト両テーマで可読性を確保する必要があるため、Foreground/Background は テーマリソース参照が安全です(ハードコードした #FFFFFFFF はテーマ切替時に隠れることがあります)。
  • 長いスレッド作業中は UI を直接更新せず、変数バインディングを通じて間接的に更新してください。

GUI 全関数リファレンス(XUtilGui)

C# ソース基準 — スクリプトから直接呼び出せるすべての関数。

メッセージボックス

関数意味
GUI.ShowMessage(buttonType, code, args...)コードベースのメッセージダイアログ。戻り値 = XEventResult
GUI.ShowMessage(code, args...) / (format, args...) / (buttonType, format, args...)コードまたはフォーマット文字列
GUI.ShowTimerMessage(buttonType, code, args...) / (buttonType, msg) / (buttonType, format, args)タイマーで自動クローズ
GUI.ShowMessageStudio(...) / GUI.ShowTimerMessageStudio(...)Studio(開発ツール)上に表示するバリエーション
GUI.IsShowMessage() / GUI.HideMessage()現在メッセージ表示中か / 強制クローズ
GUI.SetMessageBoxLayout(width, height, msgFontSize, titleFontSize=0)ボックスサイズ/フォント
GUI.SetErrorDlgLayout(width, height, msgFontSize, titleFontSize=0)エラーダイアログのバリエーション
GUI.GetMsg(code) / GUI.GetMsgStudio(code)メッセージコード → テキストのみ取得
GUI.GetErrorMessage(code)エラーコード → テキスト

ダイアログ / ウィンドウ

関数意味
GUI.ShowDialog(viewModuleName)モーダルダイアログ。OK = true、Cancel = false
GUI.CloseDialog(viewModuleName, dlgResult)ダイアログを強制クローズ + 結果設定
GUI.ShowWindow(viewModuleName)非モーダルウィンドウ
GUI.SetWindowPos(viewModuleName, left, top, cx, cy)ウィンドウ位置/サイズ
GUI.CloseWindow(viewModule) / (childControl)ウィンドウを閉じる
GUI.AdjustWindowVisibleOnScreen(window)マルチモニタで画面内に収める
GUI.GetTopWindow(childControl)子コントロールが属する最上位ウィンドウ
GUI.ShowInitDialog()初期化ダイアログ(現場の起動フロー)
GUI.ShowManualDialog(messageCode)マニュアル動作ダイアログ

JobFile · モニタページ

関数意味
GUI.ShowJobFileNewDialog() / ShowJobFileOpenDialog() / ShowJobFileSaveAsDialog()JobFile 標準ダイアログ
GUI.ShowMotorMonitor() / GUI.ShowIoMonitor()モーター/IO モニタ表示
GUI.ShowPage(viewBaseName, pageName, hideConfirm=true)ページ遷移
GUI.ShowRunPage()メイン Run ページへ

ユーザ / 権限

関数意味
GUI.Login(userLevel) / (id, pw) / (id, pw, requiredLevel)ログイン(3 種類のバリエーション)
GUI.Logout()ログアウト
GUI.ShowUserModify(userLevel)ユーザ編集ダイアログ
GUI.SetPageLevel(viewName, userLevelInt) / (viewName, userLevelStr)ページ表示権限

コントロールプロパティ — スクリプトから GUI を変更

関数意味
GUI.SetControlVisible(module, control, visibleMode)Visible トグル
GUI.SetControlVisiblity(module, control, visibility)0 ~ 2(Visible/Hidden/Collapsed)
GUI.SetControlBoolProperty(module, control, property, onoff) / GetControlBoolProperty(...)bool プロパティ
GUI.SetControlIntProperty(...) / GetControlIntProperty(...)int プロパティ
GUI.SetControlStringProperty(...)string
GUI.SetControlDoubleProperty(...)double
GUI.SetControlBrushProperty(module, control, property, color)色(#RRGGBB / リソースキー)
GUI.SetControlDateTimeProperty(...)long Ticks
GUI.InvokeControlMethod(module, control, methodName)コントロールメソッド呼出

モニタ / 画面

関数意味
GUI.GetScreenCount()モニタ数
GUI.GetMainScreenIndex()メインモニタのインデックス
GUI.GetScreenWorkArea(idx, ref left, ref top, ref width, ref height)作業領域

仮想キーボード

関数意味
GUI.ShowVirtualKeyboard(control)表示
GUI.InvokeVirtualKeyboard(control)強制呼出

ファイルダイアログ

関数意味
GUI.ShowOpenFileDialog(initDir, ref defaultFile, fileFilter)ファイルを開く
GUI.ShowSaveFileDialog(initDir, ref defaultFile, fileFilter)ファイル保存
GUI.ShowFolderSelectDialog(initPath)フォルダ選択

多言語 / Excel 入出力

関数意味
GUI.ChangeProjectLanguage(lang) / GUI.ChangeProjectLanguageByIndex(idx)言語切替
GUI.GetCurrentProjectLanguage() / GUI.GetCurrentProjectLanguageIndex()現在の言語
GUI.ExportControlLangTextToExcel(path) / GUI.ImportControlLangTextFromExcel(path)コントロール多言語 ↔ Excel
GUI.ExportControlLangTextToExcelByDialog(openFolder) / GUI.ImportLangTextExcelFileByDialog()ダイアログのバリエーション
GUI.ExportMessageDataByDialog(openFolder) / GUI.ImportMessageDataByDialog()メッセージデータ ↔ Excel
GUI.ExportErrorDataByDialog(openFolder) / GUI.ImportErrorDataByDialog()エラーデータ ↔ Excel