Cancel 버튼 추가하기

위에 생성된 윈도우를 보면 OK, Restore, Print…의 3가지 버튼 밖에 없다. 뭔가 허전하지 않은가!. 그렇다. 프로그램을 Run 시키고 나면 무조건 프로그램을 끝까지 돌려 결과를 봐야한다. 즉, Cancel 버튼이 없다. 프로그램이 엄청 길어서 시간이 많이 걸린다면 결국 강제 종료를 시키는 수 밖에 없다.

이제 윈도우에 Cancel 버튼을 추가해 보자. Cancel 버튼을 추가하기 위해서는 $SCR 명령어가 나오기 전에 ‘SCR_CANCEL=1’ 명령어를 추가하자. 그러면 ASAP이 Cancel 버튼을 생성시켜 준다. 그리고, $SCR로 값을 입력 받을 윈도우를 생성시킨 후 $IF (SCR_CANCEL) EQ 1; $GO skip 명령어를 추가하여 SCR_CANCEL 값이 1 인지(Cancel 버튼을 눌렀으면) 확인하고 1 이면 ‘skip’ 이라는 com-mand 로 jump 한다. 프로그램의 끝에 ‘skip’ command를 넣어 주어 프로그램을 끝내면 된다. 아래 프로그램에 수정된 부분을 굵은 글자로 표시하고 주석을 추가하였다. 아래와 같이 수정 후 Run 시켜보자.

SYSTEM NEW
RESET

Z=0
S=”RECTANGLE
R1=10
R2=10 
PLOT3D=1

SCR_CANCEL=1                           !! 생성된 Object의 값을 그림으로 확인하기 위해 Z X로 좌표 변경

$SCR  SCR_SCRIPT2  ‘Make Shape
$IF (SCR_CANCEL) EQ 1;  $GO skip         !! $GO skip을 받고 끝남 
$REG PLOT3D

SURFACE
  OPTICAL Z
(Z_VALUE) S” (R1) (R2)
OBJECT ‘ASK_SHAPE’

WINDOW Z X
$IF
(PLOT3D) EQ 1 THEN
{
  PLOT FACETS
  $VIEW
   
}  
$ENDIF

skip                                                      !! $GO skip을 받고 끝남  

RETURN

그림 8.28에 Cancel 버튼이 추가된 것을 확인 할 수 있다. 그럼, Cancel 버튼을 클릭해 보자.

SCR_Scr8
그림 8.28 Cancel 버튼이 추가된 윈도우

Command Output Window를 확인해 보면 프로그램이 $GO skip 이후 바로 RETURN 되어 끝난 것을 확인 할 수 있다.

— SYSTEM NEW
— RESET
— Z=0
— S=”RECTANGLE”
— R1=10
— R2=10
— PLOT3D=1
— SCR_CANCEL=1
— $SCR SCR_SCRIPT2 ‘Make Shape’
— $IF (SCR_CANCEL) EQ 1; $GO skip
— RETURN

Note…
$SCR 명령어로 표시되는 윈도우 안에서는 !!(주석문)이 적용되지 않는다. 값을 입력받는 텍스트 박스 명령어 앞에 !! 을 두어 주석문 처리를 하더라도, 생성되는 윈도우에서는 !! 이 text로 표시되고 입력을 받는 텍스트 박스는 그대로 표시되어 입력을 받을 준비를 하고 있을 것이다.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: