본문 바로가기
프로그래머의 길/Power Builder

MessageBox PowerScript 함수

by 하늘아래. 2008. 1. 25.
반응형

MessageBox PowerScript 함수

 

[설명]

사용자가 명시한 타이틀, 텍스트, 아이콘, 버튼들을 가진 시스템 MessageBox 나타낸다.

 

[문법]

MessageBox ( title, text {, icon {, button {, default } } )

 

[Argument]

title
-
메시지 박스의 타이틀 바에 나타낼 타이틀을 명시한 문자열

 
text
-
메시지 박스에 나타낼 텍스트. 텍스트는 수치 데이터 타입, 문자열, 또는 논리 등이다.
 
icon
- (
선택사항) 메시지 박스의 좌측에 나타내고자 하는 아이콘을 지시하는

  Icon 열거형 데이터 타입의 :

     ·Information! (기본설정 )

     ·StopSign!

     ·Exclamation!

     ·Question!

     ·None!
 
button

- (선택사항) 메시지 박스 하단에 나타내고자 하는 CommandButton 세트를 지시하

  Button 열거형 데이터 타입의 .

  버튼들은 열거형 데이터 타입 내에 나열된 순서로 번호가 부여된다.

     ·OK! (기본설정 ) OK 버튼

     ·OKCancel! OK Cancel 버튼

     ·YesNo! Yes No 버튼

     ·YesNoCancel! Yes, No, Cancel 버튼

     ·RetryCancel! Retry Cancel 버튼

     ·AbortRetryIgnore! Abort, Retry, Ignore 버튼
 
Default
- (
선택사항) 기본선택 버튼으로 지정하고자 하는 버튼의 번호. 기본설정 값은 1이다.

  표시된 버튼의 수보다 값을 명시하면, MessageBox 함수는 기본설정 값을 사용한다.
 

[Return ]

Integer.

처리에 성공하면 선택한 버튼의 번호 (1,2, 또는 3) 리턴하고 에러가 발생하면

-1 리턴한다. argument 중에 NULL 있으면, MessageBox 함수는 NULL 리턴한다.

 

[용법]

타이틀이나 텍스트의 값이 NULL이면, 메시지 박스에 나타내지 않는다.

MessageBox 하나의 버튼을 가지고 있을 다른 방법을 명시하지 않는 ,

버튼을 클릭하거나 ENTER 키를 누르면 스크립트 실행을 계속한다.

여러 개의 버튼을 가지고있을 경우는, 응용프로그램의 행동을 선택하기 위하여

리턴 값을 체크하는 문장을 스크립트내에 포함할 필요가 있다.

사용중인 응용프로그램을 계속 진행하려면, 반드시 MessageBox 응답하여야만 한다.

그러나, MessageBox 응답하지 않고 다른 응용프로그램으로 이동하는 것은 가능하다.

PowerBuilder Windows RightToLeft 버전을 실행 중이면서

메시지와 버튼의 텍스트를 아라비아어나 히브리어로 나타내고자 때에는,

해당 응용프로그램의 RightToLeft property TRUE 설정한다.

메시지의 문자들은 오른쪽에서 왼쪽으로 나타나고 버튼 텍스트는 올바른 언어로 것이다.

 

     * MessageBox 함수가 작동되지 않을

       control 어떤 동작을 수행하기 위하여 마우스를 capture 한다.

       , CommandButton 마우스를 클릭하는 동한 capture 하고,

       Edit control 텍스트 선택영역을 capture하고,

       scrollbar 스크롤되는 동안 capture 한다.

       만일 마우스가 capture되는 동안 MessageBox 함수를 이끌어내면

       예상치 못한 결과가 발생할 있다.

       MessageBox 함수는 focus 붙잡고있기 때문에,

       LoseFocus 이벤트와 같이 focus 변경중일 때에는 사용하지 말아야 한다.

       대신, 윈도우의 타이틀이나 MultiLineEdit에는 메시지를 나타낼 있다.

       또한, PrintOpen 함수 이후에 MessageBox 함수를 호출하였을 ,

       혼란을 야기하는 원인이 된다.

자세한 내용은, PrintOpen 함수를 참조한다.

 

[예제]

* 다음 문장은 타이틀 Greeting, 텍스트 Hello User, 기본설정 아이콘 (Information!),

기본설정 버튼 (OK 버튼) 가진 메시지 박스를 나타낸다.

MessageBox("Greeting", "Hello User")

 

* 다음 문장은 Result 타이틀과 Abs함수의 결과값, Exclamation 아이콘과 OK

Cancel 버튼 (Cancel 버튼이 기본선택 ) 가진 메시지 박스를 나타낸다.

integer Net

long Distance = 3.457

Net = MessageBox("Result", Abs(Distance), Exclamation!, OKCancel!, 2)

IF Net = 1 THEN

       ... // OK 처리

ELSE

       ... // CANCEL 처리

END IF

 

반응형