키스맥 - 4th Dimension 매킨토시 전문 웹 매거진 웹진

  + 파일메이커 기초편
  + 4th Dimension
  + 리얼베이직
  + OS X 10.3
  + 홈페이지 만들기
  + 포토샵 강좌
  + 디카 완전정복
  + 실무로 배우는 Quark
  + MLayout
  + iPod 강좌
  + html 강좌
  + 간단매뉴얼&팁
  + 5세대 iPod 강좌
  + iTunes 한 컷 강좌
  + iPod 한컷강좌
            


Chapter18. 샘플을 통한 문법 및 명령어 적용하기


이번 시간에는 Chapter_016~017에서 배운 문법 및 명령어들을 어떻게 적용하고 사용하는지 알아보도록 하겠습니다.

학습 순서 1 : 샘플(Sample)을 통한 문법 및 명령어 적용하기.
학습 순서 2 : 질문 및 답변.


1. 샘플(Sample)을 통한 문법 및 명령어 적용하기.

문법 및 명령어를 어떻게 구현하고 사용하는지를 기존의 Music Albums 프로그램을 이용하여 살짝 배워보도록 하겠습니다.


위 그림 1 : Music Albums 폴더안에 있는 Music Albums 스트럭처 파일을 4th Dimension KO 가상본 파일에 떨구어서 실행합니다.
다.

참고 : Music Albums.data 파일을 더블-클릭하여 실행하는 방법은 4th Dimension에서 권장하지 않습니다. ^^


위 그림 2 : Identification 윈도우가 나타나면 하단의 I agree 라디오 버튼을 활성하고 하단 오른쪽의 "Next >" 버튼을 눌러줍니다.


위 그림 3 : 이번에는 하단 중앙에 있는 "Demo" 버튼을 누릅니다.


위 그림 4 : 4th Dimension 메인 화면입니다. 각각의 윈도우는 보기 좋게 정돈한 것입니다. ^^
스트럭처 윈도우가 비활성 되어 있다면 "파일구조 : Music Albums" 윈도우를 마우스로 클릭하셔서 활성화 시키십시오.

참고 : 스트럭처 윈도우가 선택(활성화)된 상태를 "디자인-모드(Design-Mode)"라 부릅니다.


위 그림 5 : 스트럭처 윈도우가 선택되었다면 곧바로 메뉴바의 "Design > Edit Form..." 항목을 선택합니다.


위 그림 6 : 익스플로러 윈도우가 나타납니다. 빨간색 원 1번이 표시된 "Table_1_Albums" 테이블을 마우스로 선택하시고(하늘색으로 반전된 부분) 하단 왼쪽에 있는 "New" 버튼을 누릅니다. (빨간색 원 2번이 표시된 부분 참고)

참고 : 새로운 폼(Form) 하나를 추가하려는 작업이 되겠습니다.


왼쪽 그림 7 : New Form Wizard 윈도우가 나타납니다. 빨간색 원 1번이 표시된 "Form Name : " 부분에 "Input_EX" 라고 입력하시고, 하단에 있는 "Use" 버튼을 누릅니다. (빨간색 원 2번이 표시된 부분 참고)

참고 : "Input_EX"라는 것은 오늘 배우게 될 내용을 위해 샘플로 만드는 폼(Form) 이름이 되겠습니다.


왼쪽 그림 8 : 다시 익스플로러 윈도우로 돌아온 화면입니다. 방금 만든 "Input_EX" 폼(Form) 하나가 새롭게 추가되었네요. ^^
빨간색 원 1번이 표시된 맨 오른쪽 부분에 보시면 알파벳 "I(아이)"라는 글자가 자동으로 들어간 것을 볼 수 있습니다. 이것은 현재 ""Input Form"으로 선택되었다는 뜻이 되겠습니다. 곧바로 하단에 있는 "Edit" 버튼을 누릅니다. (빨간색 원 2번으로 표시된 부분 참고)

참고 : 빨간색 원 1번으로 표시된 부분을 더블-클릭 하셔도 되겠습니다. ^^


위 그림 9 : "Input_EX" 윈도우 안으로 들어온 화면입니다. 곧바로 툴바-팔레트에서 "Active Object" 버튼을 클릭합니다. (빨간색의 네모 테두리로 표시된 부분 참고)


위 그림 10 : 마우스 커서 모양이 십자(+) 모양으로 변할 것입니다. 아무 위치에서 마우스 버튼을 누르시고 원하는 곳으로 이동하시면 위 그림과 같이 하나의 오브젝트가 만들어질 것입니다. 그리고 Object Properties 윈도우가 자동으로 나타납니다.

빨간색 원 1번이 표시된 탭-버튼을 누르시고 중앙의 오른쪽에 있는 "Vertical Scrooll Bar" 체크 박스 버튼을(빨간색 원 2번으로 표시된 부분) 클릭하셔서 활성화 시키십시오. 그리고 빨간색 원 3번이 표시된 탭-버튼을 누릅니다.

참고 : "Vertical Scrooll Bar" 속성을 체크하시면 오브젝트의 오른쪽 부분에 "수직 스크롤바"가 자동으로 생깁니다.


위 그림 11 : "Variable > Name :" 부분에 "vt_Memo"라는 변수 이름을 입력하시고 Object Properties 윈도우를 빠져나갑니다. (마우스 커서가 있는 위치 참고)

참고 : 10번 그림에서 만든 오브젝트에 변수 이름을 붙여주는 작업이었습니다.


위 그림 12 : 이번에는 툴바-팔레트에서 "Button" 버튼을 클릭합니다. (빨간색의 네모 테두리로 표시된 부분)


왼쪽 그림 13 : 마우스 커서 모양이 십자(+) 모양으로 변하면 아무 위치에서 마우스 버튼을 누르시고 원하는 곳으로 이동하여 위 그림과 같이 하나의 버튼 오브젝트를 만듭니다. 그리고 Object Properties 윈도우가 자동으로 나타나면 위 그림의 빨간색 원 1~3번과 똑같이 해줍니다.


위 그림 14 : "실행" 버튼 오브젝트가 만들어졌습니다. 이 버튼이 선택되어 있는 상태에서 메뉴바의 "Object > Duplicate" 항목을 선택합니다. (버튼 하나를 더 만들기 위한 작업이 되겠습니다.)

참고 : 12~13번과 같은 방법으로 버튼을 만드는 것이 아닌, 이미 만들어진 버튼을 "복사"하는 과정이 되겠습니다.


위 그림 15 : 새로운 버튼 하나가 복제되었습니다. 복제된 버튼을(빨간색의 네모 테두리로 표시된 부분) 더블-클릭하여 Object Properties 윈도우를 호출한 다음 빨간색 원 1~4번 과정대로 똑같이 따라합니다.

참고 : "Variable > Action" 속성을"Cancel"로 설정한 것은 나중에 해당 윈도우를 닫을 때 사용하기 위한 것입니다.


위 그림 16 : 이번에는 메뉴바의 "Form > Turn Grid On" 항목을 선택하여 "자동 격자 기능"을 활성화 시킵니다.

참고 : 격자의 간격을 별도로 조정하기 위해서는 "Form > Grid Definition..." 항목을 선택하시면 되겠습니다.


위 그림 17 : 화면에 보여지는 3개의 오브젝트를 보기좋게 정리한 다음, 빨간색의 네모 테두리로 표시된 "vt_Memo" 오브젝트를 마우스로 더블-클릭하여 Object Properties 윈도우를 호출합니다.


위 그림 18 : Object Properties 윈도우가 나타나면 빨간색 원 1번의 탭-버튼을 누르시고 곧바로 빨간색 원 2번으로 표시된 부분을 클릭하여 "On Load" 이벤트 항목을 활성화 시킵니다. (체크 또는 꺽쇠 기호가 나타나면 활성화 된 것입니다.) 그리고 하단에 있는 "Object Method..." 버튼을 클릭합니다. (빨간색 원 3번으로 표시된 부분)


위 그림 19 : "vt_Memo" 오브젝트에 대한 메소드 윈도우가 나타납니다. 위 그림과 동일하게 입력하신 후, 메소드 윈도우를 빠져나옵니다. (마우스 커서가 있는 위치 참고)

참고 : 여기서 새로운 명령어 하나를 배워보고 넘어가도록 하겠습니다. "On Load"라는 폼-이벤트(Form event)는 나중에 17번 그림의 윈도우가 실행될 때 미리 초기화 작업을 거친 다음에 해당 윈도우를 화면에 보여주라는 뜻이 되겠습니다.

vt_Memo라는 변수를 C_TEXT라는 컴파일러 지시어로 먼저 선언하여 32,000글자까지 입력이 가능한 텍스트 변수로 선언한 뒤, vt_Memo 변수에 ""(공백)을 집어 넣어 깨끗한 변수로 초기화 시키겠다는 뜻이 되겠습니다. 이 작업이 마쳐지면 그때 가서야 17번 그림의 윈도우를 화면에 보여줘라~ 이렇게 되겠지요. (지금 이해가 잘 안가실테니 조금 이따가 다시 설명해드리도록 하겠습니다. ^^)


위 그림 20 : vt_Memo 변수에 메소드 내용이 첨가되었다는 뜻으로 vt_Memo 오브젝트 왼쪽 상단에 검은색의 삼각형 기호가 첨가되었습니다.
이번에는 바로 아래에 있는 "실행" 버튼을(빨간색의 네모 테두리로 표시된 버튼) 더블-클릭합니다. Object Properties 윈도우가 나타나면 위 그림과 같이 빨간색 원 1번으로 표시된 탭-버튼을 누릅니다.


위 그림 21 : 이번에는 "On Clicked" 이라는(파란색의 네모 테두리로 표시된 부분) 이벤트(Events)를 사용해 볼 것입니다.
하단의 "Object Method..." 버튼을 누릅니다. (빨간색 원 1번으로 표시된 부분)


위 그림 22 : "실행" 버튼에 대한 메소드 내용을 위 그림과 동일하게 입력하시고, 메소드 윈도우를 빠져나옵니다. (마우스 커서가 있는 위치 참고)

참고 1 : 변수명 맨 앞부분에 달러기호($)가 붙은 것은 임시 변수를 뜻합니다. 즉, 이곳(실행버튼 메소드) 안에서만 잠시 만들어졌다가 사용된 후(메소드 내용을 전부 실행한 뒤) 자동으로 없어지는(휘발성) 변수를 말합니다. (일시적으로 사용하는 변수등에 사용하시면 메모리 절약 효과를 얻으실 수 있습니다.) 이와 같이 변수 이름 맨 앞부분에 달러기호($)가 붙는 것을 "지역(로컬/Local) 변수(Variables)"라고 부릅니다.

참고 2 : vt_Memo 변수 이름 앞에는 달러기호($)를 붙이지 않았습니다. 왜냐하면 나중에 17번 그림의 윈도우가 실행될 때 화면에 계속 보여줄 것이기 때문입니다. 이와 같이 변수 이름 앞부분에 아무 기호도 붙지 않는 변수를 "프로세스(Process) 변수 ( Variables)"라고 부릅니다. 즉, 6번 그림의 "Table_1_Albums" 테이블 안에서만 사용되는 변수를 말합니다.

참고 3 : 나중에 보다 자세히 살펴볼 내용이지만, 변수 이름 앞에 <>기호가(예제 : <>vt_Memos) 붙는 것을 "인터프로세스(Interprocess) 변수( Variables)"라고 부릅니다. <>기호가 붙는 변수는 주로, 테이블이 하나 이상일 때 사용되며, 이쪽 테이블에서 저쪽 테이블로 자유롭게 왕래하며 사용되는 범용 변수를 말합니다. (주의 : 인터프로세스 변수를 무분별하게 수백개이상 사용하면 메모리의 사용량도 그만큼 늘어나게 되므로 해당 프로그램의 덩치가 더욱 커지게 됩니다. 그러므로 인터프로세스 변수는 꼭 필요할 때에만 사용하시기를 권장합니다.) <> 기호는 "<" 기호와 ">" 기호를 연이어 입력하시면 되겠습니다.

다시 한번 정리하여 설명드리면 아래와 같습니다.

참고 4 : 가장 적은 메모리를 사용하는 변수는 "로컬 변수(Local Variables)" 입니다. 왜냐하면 임시적으로 만들어졌다가 사용을 다 한후에는 자동적으로 없어지는 휘발성 변수이기 때문입니다.

참고 5 : 2번째로 가장 보편적이고 일반적인 변수인"프로세스 변수(Process Variables)"가 되겠습니다. 이 변수의 특징은 해당 테이블 안에서만 사용됩니다.

참고 6 : 가장 많은 메모리를 사용하는 변수로는 "인터프로세스 변수(Interprocess Variables)" 입니다. 이 변수는 여러개의 테이블에서 자유롭게 왕래하며 사용할 수 있는 변수가 되겠습니다.


위 그림 23 : Object Properties 윈도우를 닫습니다. (마우스 커서가 있는 위치 참고)
"실행" 버튼의 왼쪽 상단에 검은색의 삼각형 기호가 첨가되었습니다.(메소드가 추가되었다는 뜻이 되겠습니다.)


위 그림 24 : 이제 모든 작업을 마쳤으므로 "Input_EX" 윈도우를 빠져나가도록 하겠습니다. 상단 왼쪽에 있는 윈도우 닫기 버튼을 누릅니다. (마우스의 커서 위치 참고)


위 그림 25 : 익스플로러 윈도우로 돌아온 화면입니다. 하단의 빨간색 원으로 표시된 삼각형 버튼을 클릭하여 익스플로러 윈도우 크기를 절반으로 줄인 다음에 상단 왼쪽에 있는 윈도우 닫기 버튼을 눌러 익스플로러 윈도우를 빠져나갑니다. (마우스 커서가 있는 위치 참고)


위 그림 26 : 4th Dimension 메인 화면으로 돌아온 모습입니다. 하단에 빨간색의 네모 테두리로 표시된 유저-엔바이론먼트 윈도우를 한번 클릭하시고(User-Mode로 빠르게 전환하는 방법이 되겠습니다.) 메뉴바의 "Enter > New Record" 항목을 선택 합니다.

키보드를 이용한 단축키는 커멘드(Command) + N 키입니다.


위 그림 27 : 25번 그림의 익스플로러 윈도우에서 보시는 바와 같이 "Table_1_Albums" 테이블 안에 있는 "Input_EX"라는 인풋-폼(Input Form)이 실행된 화면입니다. 하단의 "실행" 버튼을 눌러봅시다. (마우스 커서가 있는 위치 참고)

참고 : 수직 스크롤바가 달린 vt_Memo 변수(또는 오브젝트) 안에 아무런 내용도 들어있지 않습니다. 이것은 19번 그림에서의

If (Form event=On Load)
C_TEXT(vt_Memo)
vt_Memo:=""
End if

위와 같은 메소드 내용이 실행되었기 때문입니다. 이 부분을 자세히 설명드리면

실행 순서 1) 27번 그림의 윈도우가 모니터에 나타나기전 On Load 이벤트가 먼저 실행됩니다. 18번 그림의 빨간색 원 2번으로 표시된 부분.
실행 순서 2) vt_Memo 변수를 32,000글자까지 입력이 가능한 C_TEXT 텍스트 변수로 선언합니다.
실행 순서 3) 텍스트 타입의 vt_Memo 변수 속에 ""(공백)을 넣어 깨끗한 상태로 초기화 합니다.
실행 순서 4) 모든 메소드 내용을 마쳤으므로 27번 그림의 윈도우를 모니터상에 보여줍니다.

이제 이해가 되셨습니까? ^^




위 그림 28 : 22번 그림의 메소드 내용이 실행된 결과입니다.

If (Form event=On Clicked )

C_STRING(255;$vs255_String1;$vs255_String2)
$vs255_String1:=""
$vs255_String2:=""

$vs255_String1:="우리집 티비는 참 이상하다."
$vs255_String2:="오래되서 그런지 몰라도 항상 일기예보가 맞지 않는다."

vt_Memo:=$vs255_String1+Char(13)+$vs255_String2
End if

메소드에 대한 자세한 설명은 아래와 같습니다.

실행 순서 1) "On Clicked" 이벤트는 버튼이 클릭되었을 때 작동하는 이벤트입니다. (클릭이란, 마우스 버튼이 한번 눌렸다가 떼어지는 것을 말합니다.)

실행 순서 2) 2개의 스트링 변수를 C_STRING 컴파일러 지시어로 선언합니다. 하지만 "실행" 버튼에서만 임시로 사용할 변수이므로 변수 이름 앞에 달러($) 기호를 붙여서 "로컬 변수(Local Variables)"로 선언했습니다.
실행 순서 2 참고) C_STRING 컴파일러 지시어로 선언했을 때의 총 문자의 길이는 영문을 기준으로 최대 255글자까지입니다.

실행 순서 3) 2개의 스트링 임시변수에 ""(공백)을 넣어 초기화 시켰습니다. (사실 이 문장은 생략이 가능합니다. ^^ 왜냐하면 다른 내용이 곧바로 채워질 것이기 때문입니다. ^^)

실행 순서 4) 2개의 스트링 임시 변수에 실제 내용을 각각 집어 넣습니다. "우리집...", "오래되서..."

실행 순서 5) $vs255_String1 변수 뒤에 줄넘김 기능을 하기 위하여 캐리지 리턴값의 ASCII 코드 Char(13) 명령을 집어넣습니다. 그리고 그 뒤에 $vs255_String2 변수를 더합니다. 이렇게 조합된 내용을 최종적으로 vt_Memo 변수에 집어 넣습니다.

하지만 vt_Memo 오브젝트를 자세히 보시면 아시겠지만 문자를 입력할 수 있는 아이-빔(I) 커서가 들어가 있는 상태로 보여지네요.
이 부분을 수정하는 동시에 2가지 기능을 더 추가해 보도록 하겠습니다. ^^


위 그림 29 : "Input_EX"라는 인풋-폼(Input Form) 윈도우를 빠져나가기 위하여 "닫기" 버튼을 누릅니다. (마우스 커서가 있는 위치 참고)

참고 1 : 15번 그림의 "Variable > Action" 속성을 "Cancel" 로 설정한 결과가 되겠습니다. (빨간색 원 3번으로 표시된 부분 참고)

참고 2 : "Cancel" 명령어는 윈도우를 빠져나갈 때 사용하는(윈도우 닫기 역활) 4D 명령어 입니다. (4D_683_Language_Ref.pdf 문서의 444 페이지 참고)


위 그림 30 : 4th Dimension 메인 화면으로 다시 돌아온 모습입니다.
빨간색의 네모 테두리로 표시된 스트럭처 윈도우를 한번 클릭(선택)하시고, 곧바로 메뉴바의 "Use > Design" 항목을 선택합니다.

키보드를 이용한 단축키는 커멘드(Command) + Y 키입니다.

참고 : 디자인 모드로 전환하는 과정이 되겠습니다. ^^


위 그림 31 : 이번에는 메뉴바의 "Design > Edit Form..." 항목을 선택합니다.

키보드를 이용한 단축키는 커멘드(Command) + L 키입니다.

참고 : 익스플로러 윈도우를 호출하는 과정이 되겠습니다.


위 그림 32 : 익스플로러 윈도우가 나타납니다. 빨간색 원 1번으로 표시된 부분을 더블-클릭하시거나 또는 클릭만 하시고 하단에 있는 "Edit" 버튼을(빨간색 원 2번으로 표시된 부분) 누르셔도 동일한 효과를 얻으실 수 있습니다.


위 그림 33 : "Input_EX" 윈도우 안으로 들어온 화면입니다.

빨간색 원 1 : vt_Memo 오브젝트를 더블-클릭하여 Object Properties 윈도우를 호출합니다.
빨간색 원 2 : 탭-버튼을 누릅니다.
빨간색 원 3 : 입력-가능(Enterable) 체크박스 버튼을 비활성 시킵니다. 즉, 텍스트 박스를 "보기 전용" 속성으로 바꾸는 과정이 되겠습니다.
빨간색 원 3 참고 : 24번 그림의 vt_Memo 오브젝트와 색상을 비교해 보시기 바랍니다. "Enterable" 항목이 체크되어 있을 때와 해제되었을 때
빨간색 원 4 : Object Properties 윈도우를 닫습니다.


위 그림 34 : 이번에는 하늘색의 네모 테두리로 표시된 "실행" 버튼을 클릭(선택)하시고 키보드의 커멘드(Command) + D 키를 눌러줍니다.

참고 : 14번 그림에서 메뉴바의 "Object > Duplicate" 항목을 선택한 것과 동일한 효과를 나타냅니다.

빨간색의 네모 테두리로 표시된 "실행" 버튼 하나가 복제되었습니다. 이 버튼을 더블-클릭하여 Object Properties 윈도우를 호출합니다.

곧바로 빨간색 원 1~3번 순서대로 똑같이 해줍니다.


위 그림 35 : 하단의 "Object Method..." 버튼을 클릭합니다. (마우스 커서의 위치 참고)


위 그림 36 : "메시지 윈도우" 버튼의 메소드 윈도우가 나타납니다. 위 화면과 동일하게 수정 및 추가 해줍니다.

참고 : Alert 명령어는 경고 상자 윈도우를 호출하는 명령어가 되겠습니다. (4D_683_Language_Ref.pdf 문서의 669 페이지 참고)

작업을 마치셨다면 상단 왼쪽의 윈도우 닫기 버튼을 눌러 메소드 윈도우를 빠져나갑니다. (마우스 커서의 위치 참고)


위 그림 37 : Object Properties 윈도우로 돌아온 화면입니다. 역시 상단 왼쪽의 윈도우 닫기 버튼을 눌러서 Object Properties 윈도우를 빠져나갑니다. (마우스 커서의 위치 참고)


위 그림 38 : "메시지 윈도우" 버튼안에 있는 글자가 조금 짤려 보이네요. 하단 오른쪽의 꼭지점을 누르시고 오른쪽 방향으로 약간 이동하여 버튼의 가로 길이를 조금 넓혀줍니다.


위 그림 39 : 이번에는 빨간색의 네모 테두리로 표시된 "닫기" 버튼을 더블-클릭 합니다. Object Properties 윈도우가 나타나면 빨간색 원 1~3번 순서대로 똑같이 해줍니다.


위 그림 40 : 이번에는 메소드 윈도우를 다른 방법으로 호출 해보도록 하겠습니다.
키보드의 컨트롤(Control) 키를 누르고 있는 상태에서 "닫기" 버튼을 클릭(선택) 합니다. 팝업되어 나타나는 메뉴에서 "Object Method" 항목을 선택합니다.


위 그림 41 : 위 그림과 동일하게 입력하시고, 왼쪽 상단의 윈도우 닫기 버튼을 누릅니다. (마우스 커서의 위치 참고)

참고 : CONFIRM 명령어는 승인(OK) 버튼과 취소(Cancel) 버튼을 가진 대화 상자 윈도우를 나타냅니다. 일반적으로 "OK" 버튼을 누르면 OK라는 시스템 변수가 1이 되고 "Cancel" 버튼을 누르면 OK라는 시스템 변수가 0이 됩니다. 그러므로 OK라는 시스템 변수가 1이라는 값을 가지게 되면 CANCEL 이라는 윈도우 닫는 명령이 실행되는 것이지요. (4D_683_Language_Ref.pdf 문서의 671 페이지 참고)


위 그림 43 : 익스플로러 윈도우로 돌아온 화면입니다. 상단 왼쪽에 있는 윈도우 닫기 버튼을 눌러서 익스플로러 윈도우를 빠져나갑니다. (마우스 커서의 위치 참고)


위 그림 44 : 4th Dimension 메인 화면으로 다시 되돌아온 모습입니다. 하단에 빨간색의 네모 테두리로 둘려진 유저-엔바이론먼트 윈도우를 한번 클릭하시고(User-Mode로 빠르게 전환하는 모습입니다.) 메뉴바의 "Enter > New Record" 항목을 선택 합니다.

키보드를 이용한 단축키는 커멘드(Command) + N 키입니다.


위 그림 45 : 25번 그림의 익스플로러 윈도우에서 보시는 바와 같이 "Table_1_Albums" 테이블 안에 있는 "Input_EX"라는 인풋-폼(Input Form)이 실행된 화면입니다. 하단의 "실행" 버튼을 눌러봅시다. (마우스 커서가 있는 위치 참고)


위 그림 46 : 22번 그림의 메소드 내용이 실행된 결과가 vt_Memo 오브젝트에 나타납니다. 이번에는 하단 왼쪽에 있는 "메시지 윈도우" 버튼을 클릭합니다.


위 그림 47 : 36번 그림의 메소드 내용이 실행된 화면입니다.
이와 같은 Alert 윈도우는 중요한 내용을 사용자에게 알리고자(경고) 할 때 사용하시면 효과적입니다. ^^
하단 오른쪽에 있는 "OK" 버튼을 눌러서 Alert 윈도우를 빠져나갑니다.


위 그림 48 : 이번에는 "닫기" 버튼을 클릭 해보도록 하겠습니다.


위 그림 49 : 41번 그림의 메소드 내용이 실행된 화면입니다. 이제 이해가 되시지요? ^^
하단 오른쪽에 있는 "OK" 버튼을 눌러서 Confirm 윈도우를 빠져나갑니다. (이때 "Input_EX"라는 인풋-폼(Input Form) 윈도우도 함께 빠져나가게 됩니다.)


위 그림 50 : 4th Dimension 메인 화면으로 다시 돌아온 모습입니다. 곧바로 메뉴바의 "Use > Design" 항목을 선택합니다.

키보드를 이용한 단축키는 커멘드(Command) + Y 키입니다.

참고 : 디자인 모드로 전환하는 가장 빠른 방법은 마우스 커서로 스트럭처 윈도우를(빨간색의 네모 테두리로 표시된 부분) 클릭하시면 되겠습니다.


위 그림 51 : 곧바로 메뉴바의 "Design > Edit Form..." 항목을 선택합니다.

키보드를 이용한 단축키는 커멘드(Command) + L 키입니다.

참고 : 익스플로러 윈도우를 다시 호출하는 과정이 되겠습니다.


위 그림 52 : 익스플로러 윈도우가 나타납니다. 빨간색 원 1번으로 표시된 "Input" 항목을 클릭(선택) 합니다.


위 그림 53 : 이번에는 하단에 있는(빨간색 원 1번으로 표시된) "Input Form" 체크박스 버튼을 활성화 시킵니다.
그러면 상단의 하늘색으로 반전된 "Input" 항목의 맨 오른쪽 부분에 "I(아이)" 라는 글자가 들어갈 것입니다. (빨간색의 네모 테두리로 표시된 부분)

참고 : 원래의 인풋-폼(Input Form)으로 되돌려 놓는 작업이 되겠습니다. ^^ (6번 그림 참고)

이제 모든 설정을 제자리로 되돌려 놓았으므로 상단 왼쪽에 있는 윈도우 닫기 버튼을 눌러서 익스플로러 윈도우를 빠져나갑니다. (마우스 커서가 있는 위치 참고)


위 그림 54 : 제대로 되었는지 확인하기 위하여 빨간색으로 표시된 유저-엔바이론먼트 윈도우를 클릭(선택) 하시고(유저-모드로 전환하는 가장 빠른 방법이 되겠습니다.) 메뉴바의 "Enter > New Record" 항목을 선택 합니다.


위 그림 55 : 52~53번 그림에서 작업한 대로 "Table_1_Albums" 테이블 안에 있는 "Input" 윈도우가 실행된 화면입니다. ^^
확인을 마쳤으므로 "Cancel" 버튼을 눌러서 "Input" 윈도우를 그냥 빠져나갑니다.


위 그림 56 : 오늘의 모든 학습 내용을 마쳤습니다. ^^ 4th Dimension 프로그램을 종료하기 위하여 메뉴바의 "File > Quit" 항목을 선택합니다.



2. 질문 및 답변.

질문 1) 18번 그림에 나오는 이벤트 말인데요~ 이것에 대해 자세히 살펴보려면 어느 문서를 보면 될까요?

답변 1) 4D_683_Language_Ref.pdf 문서의 461~475 페이지를 참고하시면 되겠습니다. ^^



다음글 - Chapter19. 메소드(Method)의 실제 사용법
현재글 - Chapter18. 샘플을 통한 문법 및 명령어 적용하기
이전글 - Chapter16. 4D의 지정 연산자와 컴파일러 지시어