XScript 매뉴얼 · Chapter 32
title: "GUI — 뷰 · 컨트롤 제어" chapter: 32
GUI — 뷰 / 컨트롤 제어
GUI 는 스크립트에서 화면과 컨트롤을 조작하는 글로벌 객체입니다. 뷰 전환,
다이얼로그, 컨트롤 속성(Visible / Enabled / Text / Color) 변경, 로그인 제어 등
UI 관련 전 기능이 여기에 모여 있습니다.
실전 예제
// 시작 버튼 눌림 표시
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, int visibleMode) | 0 Visible, 1 Hidden, 2 Collapsed |
bool SetControlVisible(string moduleName, string controlName, bool visible) | true Visible / false Collapsed |
bool SetControlVisiblity(string moduleName, string controlName, int visibility) | 명시적 상수 (Visibility_Visible/Hidden/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) | 현재 사용자 로그아웃 |
글로벌 설정
| 프로퍼티 | 타입 | 설명 |
|---|---|---|
GlobalBlinkTimerInterval | int | 블링크 주기 (ms) |
공통 대화상자 헬퍼 (스크립트 전역)
| 함수 | 설명 |
|---|---|
ShowMessage(button, messageCode) / ShowMessage(button, text) | 확인 다이얼로그 |
ShowError(button, errorCode, subMsg) | 에러 다이얼로그 |
ShowTimerMessage(button, messageCode) | 자동 닫히는 메시지 |
button 상수: EB_Ok, EB_YesNo, EB_OkCancel, EB_RetrySkip, EB_Reset 등.
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 업데이트를 직접 하지 말고 변수 바인딩을 통해 간접 갱신.