• 검색 결과가 없습니다.

프로그램 시작하기

N/A
N/A
Protected

Academic year: 2022

Share " 프로그램 시작하기 "

Copied!
115
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

2장 비주얼베이직 6.0

프로그램 시작하기

(2)

2-1 비주얼베이직 6.0 프로그램의 작성단계

비주얼베이직에서의 프로그램은 일련의 두가지 단계를 거치면서 프로그램을 작성

첫 단계인 시각적 단계에서는 화판에 그림을 그리듯이 폼위에 여 러 컨트롤들을 하나씩 올려놓고 이렇게 올려놓은 컨트롤에 자기 마음에 드는 색상(속성)을 지정

두 번째 단계로 하는 일을 지정을 하는 것이 직접 프로그램을 작 성하기 위한 코드 프로그래밍 단계

<처리 순서>

시각적 프로그래밍 단계

폼과 컨트롤을 배치하기(모양 꾸미기)

폼과 컨트롤의 속성 지정하기

코드 프로그래밍 단계

폼과 컨트롤에 코드 연결하기

(3)

2-2 프로젝트 만들기

프로젝트란 비주얼베이직 프로그램을 작성하면서 동일한 목적으로 생성되는 폼과 컨트롤 그리고 코드를 포함한 여러 파일들의 유기적인 집합

vbp라는 확장자를 가진다.

“새 프로젝트” 대화 상자에서 “표준 EXE”를 선택했을 때의 화면

(4)

2-2 프로젝트 만들기

프로젝트 이름은 우리가 프로그램을 작성했을 때 그 프로그램이 어떤 프로그램인지를 알 수 있도록 지정

메뉴바에서 [파일] 메뉴를 선택한 후 [프로젝트를 다른 이름으로 저 장]을 선택하면 폼(Form) 이름을 지정하기 위한 대화상자가 나온다.

[파일 이름]의 입력상자에 폼(Form) 이름을 입력하여 지정한 후 [저 장] 단추를 눌러서 저장

(5)

2-2 프로젝트 만들기

폼 파일은 frm이라는 확장자를 가지면서 저장

폼(Form) 이름을 지정하고 나면 다음으로 프로젝트 이름을 물어보는 대화상자가 나타남

프로젝트 이름을 지정하고 [저장] 단추를 클릭해서 저장

프로젝트 파일은 vbp라는 확장자를 가지며 비주얼베이직이 프로젝 트를 구성하는데 필요한 각종 정보들을 포함

(6)

2-3 프로그램 작성을 위한 기본 요소의 개념

컨트롤

기본 컨트롤의 종류

컨트롤 편집

마우스 포인터 (Pointer)

컨트롤을 편집할 때 사용

별도의 컨트롤이 선택되지 않았을 때 선택되어 있는, 일종의 가 상(dummy) 컨트롤

데이터 컨트롤 (Data Control)

데이터 베이스의 열기, 검색, 삽입/삭제/갱신, 종료 등의 작업을 수행

윈도우 구성 요소 컨트롤

윈도우의 구성 요소들을 컨트롤 화 시켜 놓은 버튼들

윈도우에서 기본적으로 제공해 주는 윈도우 클래스에 해당하는 것

(7)

2-3 프로그램 작성을 위한 기본 요소의 개념

컨트롤

기본 컨트롤의 종류

윈도우 구성 요소 컨트롤

픽쳐 박스 (Picturen Box)

그래픽 메소드를 가지고 있는 컨트롤

레이블(Label)

레이블을 표시

텍스트 박스(Text Box)

텍스트를 쓰고 편집할 수 있게 해 준다

프레임(Frame)

관련있는 컨트롤들을 모아서 관리

커맨드 버튼(Command Button)

클릭해서 명령을 내릴 수 있는 버튼 모양의 컨트롤

(8)

2-3 프로그램 작성을 위한 기본 요소의 개념

컨트롤

기본 컨트롤의 종류

윈도우 구성 요소 컨트롤

체크 박스(Check Box)

On/Off 중의 한가지 상태를 갖는 컨트롤

옵션 버튼(Option Button)

현재 프레임 안에 있는 옵션 버튼 중에서는 단 하나만이 On 될 수 있다

콤보 박스(Combo Box)

텍스트 박스와 리스트 박스를 하나로 합쳐 놓은 컨트롤

리스트 박스(List Box)

여러 개의 텍스트 중에 하나 혹은 여러 개를 선택할 수 있도록 해 주는 컨트롤

수평 스크롤 바 (HScroll Bar)

수평 방향의 스크롤 바

(9)

2-3 프로그램 작성을 위한 기본 요소의 개념

컨트롤

기본 컨트롤의 종류

윈도우 구성 요소 컨트롤

수직 스크롤 바 (VScroll Bar)

수직 방향의 스크롤 바

타이머 (Timer)

일정 시간마다 자동으로 타이머 이벤트를 발생시키는 컨트롤.

파일 컨트롤

파일명이나 디렉토리 등을 나열해 주는 컨트롤

드라이브 리스트 박스 (Drive List Box)

디스크 드라이브 목록을 나타내는 리스트 박스

디렉토리 리스트 박스 (Diretory List Box)

디렉토리 목록을 나타내는 리스트 박스

파일 리스트 박스 (File List Box)

현 디렉토리의 파일 내용을 나타내는 리스트 박스

(10)

2-3 프로그램 작성을 위한 기본 요소의 개념

컨트롤

기본 컨트롤의 종류

그래픽 컨트롤

도형 (Shape)

원, 타원, 사각형 등의 기본 도형

선 (Line)

양 끝점을 잇는 직선

이미지 (image)

이미지를 표시

그래픽 메소드가 없는 대신 메모리를 덜 소모

비트맵 이미지를 표시할 목적이라면 픽쳐 박스보다는 이미지 컨트롤을 사용하는 것이 메모리 절약

(11)

2-3 프로그램 작성을 위한 기본 요소의 개념

컨트롤

기본 컨트롤의 종류

데이터베이스 컨트롤

데이터베이스 개체(DAO)를 컨트롤화 시킨 것

DB(Database) 프로그램을 작성할 것이라면 이 컨 트롤을 잘 활용

OLE 컨트롤

OLE 컨트롤 (OLE)

OLE로 등록된 개체를 삽입

유용성이 많이 퇴색된 컨트롤

(12)

2-3 프로그램 작성을 위한 기본 요소의 개념

컨트롤의 이름 작성

객체의 이름은 그 객체의 특성을 잘 나타내어 요약

객체의 종류에 따라 다른 접두사를 붙임으로써 객체를 구분

txtName이라는 객체가 있다면 앞의 txt라는 접두사에 의해 텍스 트박스이며, 아마도 Name, 즉 이름과 관련된 객체일 것이라는 예 상

원하는 이름 컨트롤 종류 명명법에 의한 이름

Test Tel Hello Exit

Mountain

이상한_컨트롤

텍스트 박스 레이블

커맨드 버튼 픽쳐 박스 종류 불명

frmTest txtTel lblHello cmdExit

picMountain

ctr이상한_컨트롤

(13)

2-3 프로그램 작성을 위한 기본 요소의 개념

코드윈도우와 오브젝트 브라우저

코드윈도우 (프로그램 작성을 위한 편집기)

코드윈도우는 폼이나 콘트롤을 더블 클릭하면 창이 나타난다.

비주얼베이직의 모듈에 코드를 입력하고, 나타내고, 편집, 수정하는

데 사용되는 편집기

프로그램 편집을 쉽게 하기 위해 왼쪽 상단에 ‘오브젝트박스’를 배

코딩하고자하는 오브젝트를 쉽게 선택할 수 있게 구성

오른쪽 리스트박스에는 ‘이벤트 프로시저’박스를 두어 각 오브젝트

의 이벤트에 코딩을 쉽게 할 수 있도록 구성

(14)

2-3 프로그램 작성을 위한 기본 요소의 개념

코드윈도우와 오브젝트 브라우저

코드윈도우 (프로그램 작성을 위한 편집기)

비주얼베이직은 오브젝트 중심으로 코딩

오브젝트 박스에 나타난 객체이름은 현재 프로시저가 어떤 객체에

대한 것인지를 나타냄

객체에 대한 프로시저인 경우 거의 이벤트 핸들러

오브젝트 박스에 “일반” 혹은 “general”이라는 값이 선택되었다면

현재 코딩중인 프로시저는 일반 프로시저

비주얼베이직은 선택된 오브젝트에 대한 이벤트 중심으로 코딩

오브젝트 박스에 객체가 선택 되었다면, 대상이 되는 객체는 대부분

이벤트 핸들러

프로시저 박스에 “선언” 혹은 “Declaration”이 선택되어 있다면 현 재 코딩 중인 부분은 변수나 상수의 선언부라는 것을 의미

(15)

2-3 프로그램 작성을 위한 기본 요소의 개념

코드윈도우와 오브젝트 브라우저

오브젝트 브라우저

현재 프로젝트에서 사용가능한 객체타입들이 어떤 메소드와 속성, 그리고 이벤트를 갖는지 한눈에 보여 주는 비주얼베이직의 Add- in 중 하나

F2키를 누르면 오브젝트 브라우저가 나타난다.

(16)

2-3 프로그램 작성을 위한 기본 요소의 개념

속성(프로퍼티)

속성의 개념

속성(Property)이란 각 컨트롤이 갖는 속성을 의미하며 프로퍼티 라고 한다.

텍스트 박스에 쓰여질 내용 등이 텍스트 박스에 있어서는 프로퍼 티가 되는 것

컨트롤로서 다른 컨트롤과 구분되는 모든 속성이 프로퍼티가 되 는 것

프로퍼티 상태의 조회와 편집의 핵심은 프로퍼티 윈도우

프로퍼티 윈도우는 선택된 컨트롤의 프로퍼티를 알파벳 순, 혹은 항목별로 나열하고, 각각의 종류별로 편리하게 프로퍼티를 편집

(17)

2-3 프로그램 작성을 위한 기본 요소의 개념

속성(프로퍼티)

속성의 개념

컨트롤의 위치를 나타내는 프로퍼티는 숫자의 값을 가짐

텍스트 박스의 내용과 같은 프로퍼티는 문자열의 형태를 가짐

프로퍼티 편집에 관계된 기능도

비주얼베이직이 버전업을 반복하는 동안 계속해서 발전

색상을 나타내는 프로퍼티를 편집할 때엔 별도의 화면이 나타남

폰트 프로퍼티를 편집할 때엔 폰트를 선택하는 다이얼로그 박스가 나타남

(18)

2-3 프로그램 작성을 위한 기본 요소의 개념

속성(프로퍼티)

속성의 개념

비트맵 이미지 프로퍼티를 편집할 때엔 비트맵 파일을 고르는 다 이얼로그 박스가 나타남

프로퍼티의 편집은 코드로도 가능

프로퍼티 윈도우를 이용해 편집하는 것을 ‘디자인-타임 에디팅 (Design-time Editing)

실행시 코드를 이용해 편집하는 것을 ‘런-타임 에디팅(Run-time Editing)

Name과 같은 프로퍼티는 디자인-타임에만 편집이 가능

리스트 박스의 ListIndex와 같은 프로퍼티는 런-타임에만 읽고 쓰기가 가능

기본적인 프로퍼티를 파악한 후, 각 컨트롤마다 차이가 나는 프로 퍼티만 추가로 파악

(19)

2-3 프로그램 작성을 위한 기본 요소의 개념

속성(프로퍼티)

속성의 설정

속성은 디자인 타임 중에서 속성 윈도우를 통해서 설정

설정된 속성은 프로그램이 실행 될 때마다 초기값으로 사용

디자인 타임 중에는 다음과 같이 객체 속성값을 설정

객체를 설정

속성 윈도우를 활성화

바꾸기 원하는 속성을 찾는다.

속성 윈도우내에 값을 직접 입력

런타임 중에 객체 속성값을 제어하기 위해서는 문법의 코드 구문 을 사용

(20)

2-3 프로그램 작성을 위한 기본 요소의 개념

속성(프로퍼티)

속성의 설정

종류에 따라서 런타임중에는 읽기만 가능한 속성

Object.Property = Expression

텍스트 박스인 txtMessage에 “Hello, World”를 나타내려면 Text 속 성을 다음과 같이 코딩

txtMessage.Text = "Hello, World!"

런타임 중에 속성값을 알아내는 방법

Variable = Object.Property

txtName이라는 텍스트박스의 Text속성에 저장된 내용을 setUserName이라는 변수에 저장

setUserName = txtName.Text

(21)

2-3 프로그램 작성을 위한 기본 요소의 개념

자주 사용되는 속성의 소개

Name(Design-time Only)

컨트롤의 이름

비주얼베이직 내에선 변수와 같이 취급되기 때문에 변수 이름 정 하는 규칙이 그대로 적용

이 프로퍼티는 오직 디자인-타임에만 편집

[컨트롤].Name

Name 프로퍼티는 문자로 시작되어야 하며 최대 40자까지 지정 가능

Index

컨트롤의 배열이 생성되었을 때 그 인덱스를 나타낸다

동일한 이름을 가진 컨트롤을 생성하면 선택적으로 컨트롤 배열 을 생성하며 이 인덱스가 0부터 시작하여 차례로 카운트

번호에 해당하는 값은 0부터 32767

(22)

2-3 프로그램 작성을 위한 기본 요소의 개념

자주 사용되는 속성의 소개

Appearance(Design-time Only)

컨트롤의 시각적인 유형을 결정하는 프로퍼티

런-타임에서는 읽기 전용이 된다.

[컨트롤].Apperance [=0/1]

Appearance 속성 설정

설명

0

평면(Flat). 컨트롤과 폼을 시각적인 효과 없이 그린다.

1(기본값)

3D. 컨트롤을 3차원 효과를 사용하여 그린다.

(23)

2-3 프로그램 작성을 위한 기본 요소의 개념

자주 사용되는 속성의 소개

ForeColor, BackColor

BackColor는 컨트롤의 배경색을 나타내는 프로퍼티

ForeColor는 컨트롤의 텍스트나 그래픽을 표시하는데 사용되는 색을 나타내는 프로퍼티

[컨트롤].BackColor [= 컬러값]

[컨트롤].ForeColor [= 컬러값]

컬러값은 해당 색상의 빨강, 초록, 파랑(=RGB) 값을 포함한 32비 트 정수값

도스(DOS)의 기본 바이오스 컬러 16색을 지정한 QBColor() 함수 를 사용 가능

컬러값으로 사용될 수 있는 값의 범위는 0에서 16,777,215 (&HFFFFFF)

(24)

2-3 프로그램 작성을 위한 기본 요소의 개념

자주 사용되는 속성의 소개

DragMode

컨트롤의 Drag&Drop(끌어다 놓기) 동작이 수동인가 자동인가를 설정

[컨트롤].DragMode [=0/1]

DragMode를 나타내는 상수값

DragMode가 vbAutomatic으로 설정되었을 때, 컨트롤은 마우스 이벤트에 응답하지 않는다

Drag&Drop 작업을 진행하는 동안, 특정 컨트롤 위에 마우스 포 인터가 위치하고 있으면 해당 컨트롤에는 DragOver 이벤트가 발 생

컨트롤이 Drag&Drop 작업 중일 때엔 다른 마우스 또는 키보드 이벤트인 KeyDown, KeyPress, KeyUp, MouseDown,

MouseMove, MouseUp 을 인식하지 못한다

상수 설명

vbManual (기본값) 0 수동:Drag 시작을 위해 컨트롤의 Drag 메소드를 사용해야 한다.

vbAutomatic 1 자동:컨트롤을 드래그하면 자동으로 Drag 작업을 시작한다.

(25)

2-3 프로그램 작성을 위한 기본 요소의 개념

자주 사용되는 속성의 소개

MousePointer

런-타임 시 컨트롤 위에 마우스가 위치하고 있을 때 나타나는 마 우스 포인터 모양

[컨트롤].MousePointer [=값]

마우스 포인터를 나타내는 값

상수 설명

vbDefault (기본값) vbArrow

vbCrosshair vbIbeam vbIconPointer vbSizePointer vbSizeNESW vbSizeNS vbSizeNWSE vbSizeWE vbUpArrow vbHourglass vbNoDrop

vbArrowHourglass vbArrowQuestion vbSizeAll

vbCustom

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 99

각 컨트롤에 따른 기본 모양 화살표

십자 모양 포인터 I 자 막대

아이콘 (사각형 내의 작은 사각형)

크기(동서남북을 가리키는 4 방향 화살표) NE SW 크기(북동쪽과 남서쪽을 가리키는 화살표) N S 크기(북쪽과 남쪽을 가리키는 화살표) NW SE 크기(북서쪽과 남동쪽을 가리키는 화살표) W E 크기(서쪽과 동쪽을 가리키는 화살표) 위 화살표

모래시계(대기) 놓기 금지

화살표와 모래시계 화살표와 물음표 모든 크기

MouseIcon 속성으로 지정한 사용자 정의 마우스 커서

(26)

2-3 프로그램 작성을 위한 기본 요소의 개념

자주 사용되는 속성의 소개

TabIndex, TabStop

TabIndex는 [탭키]에 의해 포커스를 가질 수 있는 컨트롤 간의 우선순위

컨트롤이 탭키에 의해 포커스를 가질 수 있는가를 결정

[컨트롤].TabIndex [=값]

[컨트롤].TabStop [=True/False]

TabIndex는 적절한 정수값을 입력하는 것으로 끝난다

TabStop 프로퍼티의 설정 값

설명

True (기본값) 컨트롤이 탭키에 의해 포커스를 가질 수 있게 한다.

False 탭키에 의해 자신의 차례가 되었음에도 포커스가 자신이 아닌 다음 컨트롤로 지나치게 한다.

(27)

2-3 프로그램 작성을 위한 기본 요소의 개념

자주 사용되는 속성의 소개

OLEDropMode

컨트롤이 OLE Drop 연산을 하는 방법을 설정

[컨트롤].OLEDropMode [=값]

모드를 설정하는 상수 값

상수 설명

vbOLEDropNone

(기본값) 0 없음. 해당 컨트롤은 OLE Drop을 적용하지 않으며, 드래그 중인

커서가 이 컨트롤 위로 나타나면 No Drop 커서가 나타난다.

vbOLEDropManual 1 수동. 해당 컨트롤은 OLE Drop 이벤트를 시작하며, 이것은 코드의

OLE Drop 이벤트 핸들러를 발생시킨다.

vbOLEDropAutomatic 2 자동. 해당 컨트롤은 자동으로 OLE Drop를 적용시킨다.

(28)

2-3 프로그램 작성을 위한 기본 요소의 개념

자주 사용되는 속성의 소개

Enabled

컨트롤이 활성화 될 수 있는가의 여부를 지정

이것이 False이면 포커스를 가질 수 없기 때문에 그림이나 다를 바가 없다

[컨트롤].Enabled [=True/False]

Visible

화면에 컨트롤을 보이는가의 여부를 지정

필요에 따라 이 프로퍼티를 Off 시켜 놓고 선택적으로 표시

[컨트롤].Visible [=True/False]

Font

글자가 있는 컨트롤의 경우에 그 글자의 글꼴을 지정

초기 상태는 'Ms Sans Serif' 이며 글자의 크기는 8로 지정

한글을 쓰려면 적절한 폰트로 바꾸는 것이 좋다.

(29)

2-3 프로그램 작성을 위한 기본 요소의 개념

자주 사용되는 속성의 소개

Font

[컨트롤].Font [= 폰트]

[컨트롤].Font.Name [=문자열]

[컨트롤].Font.Size [=값]

[컨트롤].Font.Bold [=True/False]

[컨트롤].Font.Italic [=True/False]

[컨트롤].Font.StrikeThrough [=True/False]

[컨트롤].Font.Underline [=True/False]

[컨트롤].Font.Weight [=값]

폰트 컬렉션의 각 프로퍼티는 다음과 같은 의미

프로퍼티 설 명

Bold 글자를 두껍게 한다.

Italic 글자를 약간 기울어지게 한다.

Name 폰트에 해당하는 문자열을 지정한다.

Size 글자의 크기를 조정한다. 최대값은 2048이다.

StrikeThrough 글자의 가운데를 가로지르는 선을 그린다.

Underline 글자의 아래에 선을 그린다.

Weight 폰트의 두께를 조정한다. 보통은 400, Bold는 700의 값을 갖는다.

(30)

2-3 프로그램 작성을 위한 기본 요소의 개념

메소드

메소드의 개념

메소드(Method; 방법)란 개체에 포함된 고유한 동작을 의미

서브루틴/함수와 흡사하지만 특정한 개체를 대상으로 한다는 점 에서 서브루틴/함수와는 구별

개체 이름과 메소드 사이에 ‘.’을 하나 찍어 주는 것

메소드를 호출하는 이름만 차이가 날 뿐, 인수의 전달이라든가 결 과값을 얻는 방식은 프로시저/함수와 거의 동일

컨트롤도 개체이기 때문에 각각의 메소드를 가지고 있다

메소드의 작성

메소드는 객체가 액션(Action)이나 일을 수행하도록 하는 방법

메소드를 이용하는 방법은 두가지

메소드가 인자를 가지고 있는가?

메소드가 값을 리턴하는가? 만약 그렇다면 그 값을 사용하기를 원

하는가?

(31)

2-3 프로그램 작성을 위한 기본 요소의 개념

메소드

메소드의 작성

메소드는 다음의 문법

Object.Method [arg1, arg2, ...]

메소드가 값을 리턴하도록 할 때 인자들을 포함하는 괄호를 사용

폼에 “Hello, World!”라는 말을 나타내는 메소드

form1.print "Hello, World!

프린터 출력할때 “Hello, World”라는 말을 인쇄하는 메소드

Printer.print "Hello, World!"

Printer.EndDoc

(32)

2-3 프로그램 작성을 위한 기본 요소의 개념

메소드

메소드의 종류

Drag

몇몇 컨트롤(Line, Menu, Shape, Timer 등)을 제외한 컨트롤의 드 래그 작업을 시작하거나 끝내거나, 취소

object.Drag 동작값

동작값에 해당하는 상수

상수 설명

vbCancel 0 드래그 작업을 취소한다.

vbBeginDrag 1 드래그를 시작한다.

vbEndDrag 2 드래그를 끝내고 컨트롤을 드롭한다.

(33)

2-3 프로그램 작성을 위한 기본 요소의 개념

메소드

메소드의 종류

Drag

컨트롤의 DragMode 프로퍼티를 수동(=0)으로 설정했을 경우에만 이 Drag 메소드가 효과

드래그 중에는 마우스 포인터의 모양도 변한다

Move 메소드

컨트롤을 이동

컨트롤의 수평 너비와 수직 폭도 함께 조정할 수 있다

Left, Top, Width, Height 프로퍼티를 동시에 세트하는 메소드

object.Move Left, Top, Width, Height

Move 메소드에서 사용하는 인수의 단위는 ScaleMode에 근거하여 결정

이 컨트롤이 폼일 경우에는 좌표 시스템이 항상 트윕 단위

(34)

2-3 프로그램 작성을 위한 기본 요소의 개념

메소드

메소드의 종류

Refresh

컨트롤을 다시 그린다

object.RefreshMove 메소드

Refresh 메소드를 사용하는 것은 대체로 다음의 경우

그래픽 메소드를 사용한 컨트롤을 완전히 다시 표시할 경우

다른 폼을 불러오는 동안 하나의 폼을 완전히 표시할 경우

FileListBox 컨트롤과 같은 파일 시스템 목록 상자의 내용을 갱 신하는 경우

Data 컨트롤의 데이터 구조를 갱신하는 경우

Refresh 메소드가 그래픽 메소드를 갖는 컨트롤에 사용될 때에는 내 부적으로 Paint 이벤트를 발생

(35)

2-3 프로그램 작성을 위한 기본 요소의 개념

메소드

메소드의 종류

SetFocus

컨트롤로 입력 포커스를 가져오는 기능을 하는 메소드

object.SetFocus

이 메소드를 사용할 수 있는 컨트롤은 반드시 포커스를 가질 수 있 는 컨트롤

Enabled 프로퍼티가 False로 설정된 경우에도 컨트롤은 포커스를 가져올 수 없다

Enabled 프로퍼티가 False일 때엔 SetFocus 메소드를 호출하기 전 에 먼저 그 프로퍼티를 True로 변경

(36)

2-3 프로그램 작성을 위한 기본 요소의 개념

이벤트

이벤트의 개념

이벤트는 객체에 일어나는 사건

이벤트 설정

Event-Driven

윈도우 전반에 걸쳐서 동일하게 적용되는 개념

어떤 객체에 일어난 사건에 대해서 반응함으로써 작업이 이루어진다. 만약 버튼이 눌렸다면 버튼에 는 클릭 이벤트가 발생

클릭 이벤트에 대한 핸들러를 준비하였으면 윈도우 는 이 핸들러내의 코드를 실행

윈도우의 이벤트는 아주 종류가 많으며, 또 객체에 따라서 각각 고유한 이벤트들을 갖게 된다.

(37)

2-3 프로그램 작성을 위한 기본 요소의 개념

이벤트

이벤트 프로시저

객체의 특정 이벤트가 발생했을 때 수행되는 코드 묶음

문 법

Sub ObjectName_EvaneName(arg1, arg2, ...)

다음 예제는 Command1 이라는 이름을 가진 버튼이 눌린 경우,

“눌렸습니다.” 라는 메시지를 화면에 보이도록 한다

폼에 Command 버튼을 추가한 후 커멘드 버튼을 두번 클릭 하면 프로그램을 넣을 수 있는 코드 편집 윈도우가 나타난다.

Sub Command1_Click() Msgbox "눌렸습니다!"

End Sub

(38)

2-4 프로그램 작성하기

Windows 프로그램의 작성

Windows 프로그래밍을 하는데 있어서 가장 중요한 것은 이 프로 그램이 과연 무슨 일을 하는 프로그램인가를 정의하는 일

비주얼베이직에서의 입출력은 어떻게 정의해야 하는가. 정답은 컨트롤이 그 역할을 담당

컨트롤의 구현

실습 2-1

자신의 성명을 입력하면 프로그램은 사용자의 이름과 함께 “안녕 하세요” 라고 출력하는 프로그램을 작성

(39)

2-4 프로그램 작성하기

컨트롤의 구현

컨트롤 추가

사용자의 이름을 입력받는다.

사용자의 이름과 함께 “안녕하세요”를 출력

컨트롤 배치

폼 위에 배치하기 위한 컨트롤을 컨트롤 박스에서 선택

사용하려는 컨트롤 위에서 마우스 버튼을 한 번 누른 후 폼위에서 원하는 크기만큼을 마우스를 누른 상태에서 이동을 하면 선택한 컨트롤이 생성

(40)

2-4 프로그램 작성하기

컨트롤의 구현

컨트롤 배치

사용하려는 컨트롤들을 원하는 위치에 알맞은 크기로 폼위에 배치한 화

컨트롤의 속성 설정

컨트롤들을 배치한 후에는 각 컨트롤들의 속성을 지정

“안녕하세요” 프로그램에서도 텍스트 박스가 두 개 사용

입력에 쓰이는 텍스트 박스는 txtInput, 출력에 쓰이는 텍스트 박스는 txtOutput이라 이름을 설정

(41)

2-4 프로그램 작성하기

컨트롤의 구현

컨트롤의 속성 설정

같은 컨트롤이지만 이름을 달리하는 이유

두 개의 컨트롤 이름이 같으면 어느 텍스트 박스를 선택해야 할지를 모르기 때문

컨트롤들의 이름을 정하는데 있어서 각 컨트롤의 기능을 잘 알 수 있도록 사용자가 정하는 컨트롤이름 앞에 선행자를 붙이는 것을 원칙

일반적인 컨트롤의 이름을 구분하기 위한 선행자들

컨트롤 선행자

PictureBox pic Label lbl TextBox txt Frame fra

CommandButton cmd CheckBox chk OptionButton opt ListBox lst ComboBox cbo HscrollBar hsb

컨트롤 선행자

VscrollBar vsb Timer tmr DriveListBox drv DirListBox dir FileListBox fil

Shape shp Line lin Image img

Data dat form frm

(42)

2-4 프로그램 작성하기

컨트롤의 구현

컨트롤의 속성 설정

객체의 이름은 그 객체의 특성을 잘 나타내어 요약하는 것이어야 생산성 이 높아진다

객체의 종류에 따라 다른 접두사를 붙임으로써 객체를 구분

txtName이라는 객체가 있다면 앞의 txt라는 접두사에 의해 텍스트박스이 며, 아마도 Name, 즉 이름과 관련된 객체일 것이라는 예상

컨트롤 표시어 사용예제

CheckBox chk chkReadOnly

ComboBox cbo cboEnglish

CommandButton cmd cmdExit

CommonDiallogBox dlg dlgFileOpen

Form frm frmEntry

Label lbl lblHelpMessage

ListBox lst lstPolicyCodes

Menu mnu mnuFileOpen

Picture pic picVGA

TextBox txt txtLastName

(43)

2-4 프로그램 작성하기

컨트롤의 구현

개체별 속성창 지정

▶ “안녕하세요” 컨트롤별 속성 설정 값

컨트롤 이름

컨트롤

종류 사용된 속성

frmHello

(Name) = frmHello Caption =

안녕하세요...

lblInput 라벨

(Name) = lblInput Caption =

이름을 입력하세요

cmdInput 명령

버튼

(Name) = cmdInput Caption = 입 력

txtInput 텍스트

박스

(Name) = txtInput Text = “ ”

txtOutput 텍스트 박스

(Name) = txtOutput Text = “ ”

frmHello 컨트롤의 속성

(44)

2-4 프로그램 작성하기

컨트롤의 구현

개체별 속성창 지정

lblInput 컨트롤의 속성

cmdInput 컨트롤의 속성

(45)

2-4 프로그램 작성하기

컨트롤의 구현

개체별 속성창 지정

txtInput 컨트롤의 속성

txtOutput 컨트롤의 속성

(46)

2-4 프로그램 작성하기

컨트롤의 구현

컨트롤에 대한 코드 프로시저 작성

각 컨트롤이나 폼을 더블클릭하거나 [보기] 메뉴에서 [코드] 항목을 클 릭하거나 프로젝트 탐색기 창에서 코드 버튼을 클릭하면 Code Window 가 니티남

(47)

2-4 프로그램 작성하기

컨트롤의 구현

컨트롤에 대한 코드 프로시저 작성

오른쪽 상단의 리스트 박스에서 마우스나 키보드에서 일어날 수 있는 경 우의 목록들이 나열

나열된 리스트 항목을 선택하게 되면 그 창에서 작성된 코드는 그 항목이 발생되는 경우에만 실행

Windows는 Event Driven 방식

Windows가 미리 정해놓은 Event가 발생하게 되면 Windows는 그 Event에 따라 일정한 행동

비주얼베이직에서는 각 컨트롤마다 Event를 정할 수 있게 Code Window에서 제공

(48)

2-4 프로그램 작성하기

컨트롤의 구현

컨트롤에 대한 코드 프로시저 작성

작성된 코드는 cmdInput 컨트롤에 Click 이벤트가 발생했을 때 즉, 입력 버튼을 마우스로 클릭했을 때 실행

(49)

2-4 프로그램 작성하기

컨트롤의 구현

cmdInput 컨트롤의 코드 내용

비주얼베이직에서 자동으로 입력해 주는 코드로서 우리는 Private Sub cmdInput_Click()과 End Sub사이에 코드를 작성

(50)

2-4 프로그램 작성하기

컨트롤의 구현

cmdInput 컨트롤의 코드 내용

Private Sub cmdInput_Click()의 의미는 cmdInput 컨트롤에 Click 이 란 이벤트가 발생했을 때 코드의 시작 부분을 의미하며 End Sub는 그 코 드의 마지막이라는 의미

Dim strHello As String

스트링 형으로 strHello라는 변수를 선언

strHello = “안녕하세요?” + txtInput.Text + “님”

변수 strHello에 “=” 오른쪽의 내용을 대입

txtOutput.Text = strHello

변수 strHello의 내용을 txtOutput 컨트롤의 Text 속성에 대입

(51)

2-4 프로그램 작성하기

컨트롤의 구현

“안녕하세요” 프로그램의 실행

실행방법

“실행” 메뉴에서 “시작”을 선택하거나 도구 바에서 [시작] 단추를 선택하여 실행

실행 결과

(52)

2-4 프로그램 작성하기

컨트롤의 구현

“안녕하세요” 프로그램의 실행

프로그램의 종료

오른쪽 상단의 프로그램 닫기 단추를 누르거나 도구 바에서 [종료] 단추를 누르면 프로그램이 종료

프로그램의 구성

모든 프로그램이 종료

(53)

2-4 프로그램 작성하기

컨트롤의 구현

비주얼베이직의 파일 형식

형 식 확장자 설 명

폼파일

frm

폼과 개체에 대한 속성과 이벤트 프로시저

프로젝트파일

vbp

프로젝트를 구성하는 파일과 개체 목록, 시작 폼

표준모듈

bas

프로젝트에 있는 폼과 객체에서 호출되는 공통 속성과 프로시

(54)

2-5 기본 컨트롤의 이해

Label( )

폼 위에 문자 정보를 표시하는 컨트롤

컨트롤 윈도우에서 Label 컨트롤을 선택한 후 드래그하여 Label 컨트롤을 폼 위에 배치

원하는 위치에 원하는 크기의 Label 컨트롤이 배치되었는지 확인하고 언제든지 위치와

크기는 조정

(55)

2-5 기본 컨트롤의 이해

Label( )

Label속성의 종류와 그 기능

이름(Name) 속성

모든 컨트롤은 모두 이름 속성을 가지고 있어야 함

컨트롤 제어를 위해서 컨트롤의 이름을 참조

컨트롤의 이름은 다음의 규칙을 따라 작성

255자 이내

영문자, 숫자, 밑줄 문자(_)로 구성

첫 번째 문자는 영문자로 구성

Sub, For, End 등 예약어(비주얼베이직이 내부적으로 사용하는 단어)는 사용 불가

동일 폼 내에 중복된 이름 사용 불가

이름을 보고 그 컨트롤이 어떤 종류의 것인지 어떤 역할을 하는 것인지 알 수 있도록 한다

(56)

2-5 기본 컨트롤의 이해

Label( )

Label속성의 종류와 그 기능

Caption 속성

Label 컨트롤에 표시되는 문자열을 의미

속성 윈도우에서 Caption 속성을 찾아 출력하 고자 하는 내용을 입력

Label 컨트롤의 표시 내용이 바뀌었는지 확인

(57)

2-5 기본 컨트롤의 이해

Label( )

Label속성의 종류와 그 기능

Alignment 속성

Label 컨트롤 위에서 출력된 문자열의 정렬 상태를 정해주는 속성

Alignment 속성값은 ‘0-왼쪽 맞춤, 1-오른쪽 맞춤, 2-가운데 맞춤’

‘1-오른쪽 맞춤’으로 설정한 다음 문자열의 정렬이 오른쪽 정렬로 바뀐 것을 확인

(58)

2-5 기본 컨트롤의 이해

Label( )

Label속성의 종류와 그 기능

Appearance 속성

Label 컨트롤의 외양을 결정

‘0-평면’과 ‘1-3D’ 두 가지가 있다

‘BorderStyle’ 속성에 종속되어 있으며,

‘BorderStyle’ 속성이 ‘0-없음’으로 설정되어 있으면 Appearance 속성은 효과가 없다.

다음과 같이 설정하면 Label 컨트롤에 3D 효 과가 지정

Appearance 속성 = 1-3D

BorderStyle = 1-단일 고정

(59)

2-5 기본 컨트롤의 이해

Label( )

Label속성의 종류와 그 기능

BackColor 속성

Label 컨트롤의 배경색을 지정

BackColor 속성을 열면, 탭이 두 개 있다.

시스템:현재 시스템에 설정되어 있는 색으로 윈 도우 디스플레이 등록 정보에 있는 ‘화면배색’에 의해 변경

색상표:컨트롤의 색상을 사용자가 정의

‘색상표’ 탭을 누르면 다음과 같은 색상을 정의

‘BackStyle’ 속성이 ‘0-투명’으로 정의되어 있으 면, BackColor 속성은 효과를 나타낼 수 없다.

(60)

2-5 기본 컨트롤의 이해

Label( )

Label속성의 종류와 그 기능

Enabled 속성

Label 컨트롤에서는 그다지 중요하지 않지만, 다 른 컨트롤들에는 유용하게 사용

False로 설정하면 컨트롤을 비활성화(사용불능) 상태로 나타내어 준다.

Enabled 속성은 폼 디자인 상태에서는 확인할 수 없고, 실행상태에서 적용 여부를 확인

Enabled 속성을 False로 설정한 상태에서 나타 낸 모양으로 Enabled 속성이 True로 설정되었을 때에 비해 글자가 흐려진 상태를 확인

(61)

2-5 기본 컨트롤의 이해

Label( )

Label속성의 종류와 그 기능

Font 속성

Caption 속성에 설정된 문자를 표시할 글꼴을 설정

‘...’ 버튼을 누르면 다음과 같은 글꼴 대화상자가 나타난다.

(62)

2-5 기본 컨트롤의 이해

Label( )

Label속성의 종류와 그 기능

ForeColor 속성

Caption 속성에 지정된 문자열의 색상을 바꾸어 준다

(63)

2-5 기본 컨트롤의 이해

Label( )

Label속성의 종류와 그 기능

Visible 속성

컨트롤을 윈도우 화면에 보이게 할 것인지를 결정

‘False’로 설정되어 있으면 컨트롤은 실행시 보이지 않게 된다.

AutoSize 속성

Label 컨트롤의 크기를 Caption에 입력된 문 자열의 길이에 자동으로 맞출 것인지를 결정 하는 속성

True로 설정되면 다음과 같이 문자열의 길이 에 맞추어 크기가 결정

글꼴:궁서체

글꼴 스타일:굵은 기울임꼴

크기:16

(64)

2-5 기본 컨트롤의 이해

실습 2-2

Label 컨트롤을 이용하여 문자열을 출력

컨트롤 이름 컨트롤 종류 사용된 속성

Form1 Form (이름) = From1 Caption = ""

Lable (이름) = 뷰

Caption = ""

출력 CommandButton (이름) = 버튼 Caption = 출력

(65)

2-5 기본 컨트롤의 이해

실습 2-2

새 프로젝트를 생성

(66)

2-5 기본 컨트롤의 이해

실습 2-2

Label을 선택하여 폼에 위치

Font의 크기를 예상하여 적당한 크기로 드래그

화면에 나타낼 글자의 Font는 해당 Label의 속성 Font에서 조정

(67)

2-5 기본 컨트롤의 이해

실습 2-2

명령을 수행할 Command버튼을 다음과 같이 폼에 위치

(68)

2-5 기본 컨트롤의 이해

실습 2-2

프로젝트 창의 Form1에서 코드보기를 선택

다음과 같이 코딩

실행

(69)

2-5 기본 컨트롤의 이해

실습 2-3

Label 컨트롤에 속성의 효과를 지정

컨트롤 이름 컨트롤 종류 사용된 속성

Form1 Form (이름) = From1 Caption = ""

Label1 Lable

(이름) = 뷰 Caption = ""

Alignment = 2 - 가운데 맞춤 BorderColor = 1 - 단일 고정

ForeColor = &H000000FF&

출력 CommandButton (이름) = 버튼 Caption = 출력

(70)

2-5 기본 컨트롤의 이해

실습 2-3

<실습 2-2>에서 작성한 프로젝트를 불러온다

Label인 (이름)뷰를 선택하여 속성을 변경

(71)

2-5 기본 컨트롤의 이해

실습 2-3

Form화면에 나타날 Font의 글자 색은 다음과 같이 변경

저장 후 실행

(72)

2-5 기본 컨트롤의 이해

TextBox( )

TextBox 컨트롤은키보드를 통해서 문자 정보를 입력받기 위한 컨 트롤

TextBox 컨트롤을 선택한 후, 드래그하여 폼 위에 배치하고, 원하 는 위치에 원하는 크기의 TextBox 컨트롤이 배치되었는지 확인

TextBox속성의 종류와 그 기능

(73)

2-5 기본 컨트롤의 이해

TextBox( )

이름(Name) 속성

하나의 폼에 동일한 이름의 컨트롤이 두 개 이상 존재할 수는 없다.

TextBox 컨트롤의 이름은 txt라는 접두어를 붙이도록 권장

Text 속성

TextBox 안에 입력되어 있는 내용을 나타내는 속성이 Text 속성

비어 있는 상태로 나타나게 하고 싶다면 바로 이 속성을 공백으로 나 타내야 한다.

Alignment 속성

문자의 정렬 상태를 지정하는 속성

세 가지 중 하나로 지정할 수 있으며 그 결과값은 다음과 같다.

(74)

2-5 기본 컨트롤의 이해

TextBox( )

Appearance 속성

TextBox 컨트롤의 외양을 지정

Appearance 속성은 다음 두 가지 중 하나로 지정

이 속성은 BorderStyle 속성이 ‘1-단일 고정’으로 선택되어 있을 때에 만 적용

(75)

2-5 기본 컨트롤의 이해

TextBox( )

Enabled 속성

TextBox의 사용 가능 여부를 결정

False로 설정되어 있으면 TextBox에 문자 정보가 입력되지 않는다.

(76)

2-5 기본 컨트롤의 이해

TextBox( )

Font 속성

TextBox에 입력될 문자의 폰트를 결정

‘...’ 버튼이 나오면 글꼴 대화상자가 나타나며, 이곳에서 글꼴과 스타 일, 크기를 지정

(77)

2-5 기본 컨트롤의 이해

TextBox( )

Locked 속성

TextBox에 사용자가 특정 내용을 입력할 수 있게 할 것인지의 여부를 결정

위의 것은 Enabled 속성을 False로 준 것이고, 아래의 것은 Locked 속성을 True로 준 것

Locked 속성이 True인 경우는 입력, 편집만을 막아놓은 경우

(78)

2-5 기본 컨트롤의 이해

TextBox( )

MaxLength 속성

사용자가 입력할 수 있는 문자의 갯수를 제한하는 속성

MultiLine 속성

TextBox에 여러 줄의 문자열을 입력할 경우 이 속성을 True로 설정

메모장과 같이 여러 줄을 입력해야 하는 프로그램을 개발한다면 MultiLine 속성이 True로 설정된 TextBox가 필요

(79)

2-5 기본 컨트롤의 이해

TextBox( )

Vislble 속성

False가 되어 있으면 TextBox가 시각적으로 보이지 않게 된다

보이지 않을 뿐, 실제로는 폼 안에 존재하고 있는 것

(80)

2-5 기본 컨트롤의 이해

실습 2-4

Text Box를 이용한 입력값을 Text Box에 출력

컨트롤

이름 컨트롤 종류 사용된 속성 Form1 Form (이름) = From1

Caption = “”

Label1 Lable

(이름) = Label1 Caption =

“입력값”

Text1 TextBox (이름) = Text1 Caption = “”

Text2 TextBox (이름) = Text1 Caption = “”

버튼 CommandButton (이름) = 버튼 Caption = “출력”

(81)

2-5 기본 컨트롤의 이해

실습 2-4

새 프로젝트를 생성

Label인 (이름)뷰를 선택하여 속성을 변경

(82)

2-5 기본 컨트롤의 이해

실습 2-4

TextBox를 선택하여 입력받을 TextBox의 위치한 후 속성을 변경

같은 방법으로 Text2를 Form에 위치

(83)

2-5 기본 컨트롤의 이해

실습 2-4

Text1에 입력한 값을 Text2에 출력하기 위한 명령버튼을 추가

(이름)과 Caption을 속성창에서 수정

(84)

2-5 기본 컨트롤의 이해

실습 2-4

프로젝트의 해당 폼에서 코드보기를 선택하여 다음과 같이 코딩

출력 CommandButton을 두 번 Click하면 출력버튼 코딩

저장후 실행

(85)

2-5 기본 컨트롤의 이해

실습 2-5

Text파일의 내용을 읽어 들여 TextBox에 내용을 출력

컨트롤

이름 컨트롤 종류 사용된 속성

Form1 Form (이름) = From1 Caption = “”

Text1 TextBox

(이름) = Text1 Caption = “”

MultiLine = True

Command1 CommandButton (이름) = Command1 Caption = 확인

(86)

2-5 기본 컨트롤의 이해

실습 2-5

Form에 내용을 출력할 TextBox를 추가한 후 MultiLine을 True로 변경

(87)

2-5 기본 컨트롤의 이해

실습 2-5

CommandButton을 Form에 추가한 후 속성에서 Caption을 변 경

참조

관련 문서

step(A,B,C,D,ui,t) % 상태공간으로 정의된 시스템에 input ui에 대한 step response를 시간 t에

민중미술을 가로지르는 비평의 쟁점은 모더니즘과 리얼리즘의 간격 1 ) 에 있었다.당 시 모노크롬화가 탈일루젼 형식으로 작가 개인의 정체성을

직선적이고 평면적으로 구성된 한복은 착용함으로써 곡선적이고 입체적인 다양한 선을 이루게 된다.외형에 나타나는 유연한 한복의 선은 무엇보다도 한복의 아름다

악을 대표하는 인물인 광해군은 절대권력을 위해 선을 대표하는 인물인 인목대 비를 계속해서 핍박한다 계축옥사는 계축년. 국구인 김제남과 대비의 동생들이

원하는 형상의 회로 선을 얻기 위한 목적이나 배선(Interconnection)용 접촉(Contact)을 이루기 위한 구멍(Contact Hole)을 형성하기 위한 용도로 대상

그리고 다른 모둠의 운동기구에 대해서 장점, 단점, 재미있는 점을 평가하여 아래에

• 각뿔에서 면과 면이 만나는 선을 모서리, 모서리와 모서리가 만나는 점을 꼭짓점, 옆면을 이루는 모든 삼각형의 공통인 꼭짓점을 각뿔의 꼭짓점, 각뿔의 꼭짓점에서

유아기 때부터 이런 표현의 욕구는 선을 긋거나,그림을 그리는 등의 자유스러운 놀이 형태로 나타난다.미술의 기본적인 것들은 이렇듯 놀이의 형태로 나타난다.아동들의