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)현재 사용자 로그아웃

글로벌 설정

프로퍼티타입설명
GlobalBlinkTimerIntervalint블링크 주기 (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 업데이트를 직접 하지 말고 변수 바인딩을 통해 간접 갱신.