2017년 4월 10일 월요일

비주얼 베이직 강좌 - 2

먼저 비주얼베이직을 실행하고 '표준 EXE'를 선택하면 빈 폼이 열립니다. (앞으로 특별히 언급하지 않으면 항상 '표준 EXE' 상태 로 프로그램을 시작하기로 약속하죠.) 빈 폼에 텍스트박스 컨트롤을 아래 그림과 같이 추가합니다.(어떻게 하시는지 아시죠? 이미 앞에서 실습했습니다.)

그리고 오른쪽 하단에 속성 창을 보세요. 이미 이전에 실습해서 아시겠지만 여러 속성의 이름과 기본적인 속성 값들이 보입니다. 5 텍스트 박스 컨트롤의 속성들을 자세히 살펴보면 모두 43 가지나 됩니다. 이 중에서 우리는 지난 시간에 이름 속성과 Text 속성 등을 바꿔봤습니다. 그 외에 텍스트 박스에 입력 또는 표시되는 글꼴의 모양을 변경할 수 있는 Font 속성, 텍스트 박스 테두리 모양을 변경할 수 있는 BorderStyle 속성, 배경색을 바꿀 수 있는 BackColor 속성 등 매우 많습니다. 각각의 컨트롤은 이많큼 많은 속성을 가지고 있습니다. 그럼 이 모든 속성을 다 외워야 하는가? 시간이 남아도시는 분은 그렇게 하셔도 될 것입니다. 그러나 대개의 경우 몇 가지 자주 사용하는 속성만 기억하고 나머지 속성들은 대충 그러한 것들이 있다는 것만 알아두시면 됩니다. 비주얼베이직으로 프로그래밍을 여러번 하다가 보면 자연스레 여러 속성에 대해 속속들이 알게될 것이 기 때문입니다

속성을 바꾸는 방법은 두 가지가 있습니다. 먼저 기본적으로 위와 같은 속성 창에서 직접 그 값을 바꾸는 방법이 있습니다. 또 다른 방법으로는 코드 창에서 직접 바꾸는 방법이 있습니다. 실제 프로그램이 실행되는 도중에 사용자에 의해 속성값을 바꿔 야할 경우에 주로 사용되죠. 혹시 지난 강좌 실습 기억나시나요? <눌러봐> 버튼을 눌렀을 때 텍스트박스에 "뭘 봐?"라고 표시되었죠. 텍스트박스를 만들면 기 본적으로 Text 속성의 속성 값이 "Text1"입니다. 이것을 프로그래머가 처음에 ""(빈칸)으로 바꿨습니다. 그리고 사용자가 프로그 램을 실행하고 <눌러봐> 버튼을 눌렀을 때 ""(빈칸)이던 Text 속성값이 "뭘 봐?"로 바뀐 것이죠? 이해가 되시는지요?...... 이해가 될 때까지 이 문장 반복해서 보시길...

메서드는 영어로 method, 말 그대로 '방법'이라는 뜻입니다. 즉 어떤 개체(컨트롤)를 실행하는 방법을 말합니다. 어떤 폼을 보이 게 할 수도 있고, 숨기게 할 수도 있고, 그림을 그리거나 이동시킬 수도 있죠. 자, 그럼 폼 위의 Text1 텍스트 박스를 더블클릭하여 코드 창을 열어보세요. 그러면 아래와 같이 Private Sub Text1_Change( ) 함수가 기본적으로 나오죠. 그 아래 줄에 다음과 같이 Text2.을 입력합니다. 그러면 점(.)을 입력하는 순간 아래 그림과 같이 무언가를 선택할 수 있는 목록 6 이 나타나죠. 이 목록이 바로 속성과 메서드 목록입니다. 검은 색 글씨만으로 된 것이 속성이고 녹색 아이콘이 붙어있는 것이 바 로 메서드입니다.

목록에서 SetFocus 메서드를 선택해서 Text2.SetFocus 라는 문장을 완성하세요. Private Sub Text1_Change() Text2.SetFocus End Sub 이제 뜻을 살펴볼까요? Text1 이라는 텍스트 박스에 Change 이벤트가 발생하면, 즉 텍스트 박스의 내용을 변경하면 Text2 라는 텍스트 박스로 포커스를 옮겨라, 즉 Text2 텍스트 박스로 커서가 이동합니다. 그러면 이제 [F5]를 누르거나 실행 버튼(▶)을 클릭하여 프로그램을 실행해 보세요. 그런다음 Text1 이라고 씌어진 부분에 글자 를 입력해 보세요. 단 한자를 입력하자마자 커서가 Text2 로 이동되는 것을 알 수 있습니다. 좀 어렵죠? 메서드에 대한 적절한 예가 없어 SetFocus 메서드로 예를 들자니 다소 어렵게 느껴질 수도 있었겠습니다. 정리하자면 메서드는 개체(컨트롤 등을 말함)를 대상으로 행해질 수 있는 일종의 함수를 말합니다. 그래서 속성과 마찬가지로 항 상 그 대상이 되는 개체(위의 예에서는 Text2)를 명시하고 점(.)을 찍은 다음 뒤에 표시를 하게 됩니다.

이벤트에 대해서는 지난 강좌에서 설명드렸죠? 사용자가 행하는 어떤 '행위'라고 말입니다. 즉 커맨드 버튼을 클릭 (Command1_Click())하거나 더블클릭(Command1_DbClick)하는 행위, 텍스트 박스에 글자를 입력하거나 수정(Text1_Change())하 는 행위 등을 말합니다. 보기 메뉴에서 코드를 선택하여 코드 창을 열어봅시다.(코드 창을 여는 방법은 이 외에도 여러 가지가 있습니다. 폼을 더블클릭 하거나 특정 컨트롤을 더블클릭해도 열립니다.)

아래 그림과 같은 코드 창에서 Text1 이라고 표시된 부분이 '개체' 목록을 나타내는 부분입니다. 쉽게 말하면 컨트롤 이름이라고 할 수 있습니다. (개체는 컨트롤보다는 광범위한 개념입니다만, 이것저것 다 설명하자면 너무 길어지니 그냥 컨트롤과 같은 것이 라고만 생각해주시기 바랍니다.) 현재 폼 위에 텍스트 박스를 두 개 그려넣었으니 Form1, Text1, Text2 라고 세 개의 개체가 표시 될 것입니다.

오른쪽의 Change 라고 표시된 부분은 '프로시저' 목록입니다. 쉽게 말하면 이벤트라고 할 수 있습니다. 우리가 폼 위에 컨트롤을 만들고 더블클릭하여 폼 창을 열면 기본적으로 가장 자주 실행되는 이벤트 프로시저가 표시됩니다. 예 를 들어 커맨드 버튼을 더블클릭하면 클릭 이벤트가 기본적으로 표시되고, 텍스트 박스 이벤트를 클릭하면 Change 이벤트가 기 본적으로 표시됩니다

댓글 없음:

댓글 쓰기