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 버튼을 클릭해 보자.
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로 표시되고 입력을 받는 텍스트 박스는 그대로 표시되어 입력을 받을 준비를 하고 있을 것이다. |