• 검색 결과가 없습니다.

기본 프로그래밍 Ⅰ

N/A
N/A
Protected

Academic year: 2022

Share " 기본 프로그래밍 Ⅰ "

Copied!
35
0
0

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

전체 글

(1)

4장 비주얼베이직을 이용한

기본 프로그래밍 Ⅰ

(2)

4-1 메뉴(MENU)

메뉴 표시줄은 그 프로그램이 사용하는 기능들을 풀 다운 메뉴방식으로 사용자에게 Interface를 제공

사용자는 식당에서 음식 메뉴를 고르듯이 프로그램의 기능들을 선택할 수가 있음

비주얼베이직에서는 프로그래머가 메뉴를 쉽게 작성 할 수 있도록 메뉴 에디터를 제공

메뉴 에디터는 하나의 컨트롤(일련의 속성과 이벤트를 가짐)

메뉴 에디터는 또한 미리 정의된 속성과 이벤트들을 가짐

(3)

4-1 메뉴(MENU)

 메뉴를 포함하는 문서 편집기 프로그램

실습 4-1

“문서 편집기” 프로그램의 텍스트 박스에 문자열을 입력하게 되면 메 뉴의 각 항목들로 그 문자열을 편집 즉 복사하고, 오려내고, 복사하거 나 오려낸 문자열을 특정 위치에 붙여놓을 수 있는 기능을 위한 프로그 램을 작성

프로그램 실행을 위한 운영 방법

프로그램이 실행되면 메뉴 항목인 “파일”과 “편집”이 메뉴 표시줄에 표시됨

(4)

4-1 메뉴(MENU)

 메뉴를 포함하는 문서 편집기 프로그램

프로그램 실행을 위한 운영 방법

텍스트 창에 일단 문자열이 입력되면 비활성화되어 있던 “편집” 메뉴 의 각 항목들이 “붙이기” 항목을 제외하고 활성화됨

(5)

4-1 메뉴(MENU)

 메뉴를 포함하는 문서 편집기 프로그램

프로그램 실행을 위한 운영 방법

마우스로 문자열을 선택을 해서 “복사하기”나 “오려내기” 항목을 선택 하면 “붙이기” 항목이 활성화되면서 텍스트 창의 특정위치에 문자열을 붙여 넣을 수 있게 함

(6)

4-1 메뉴(MENU)

 메뉴를 포함하는 문서 편집기 프로그램

프로그램 실행을 위한 운영 방법

“전부 지우기” 항목을 선택하면 텍스트 창의 모든 문자열이 사라지게 됨

(7)

4-1 메뉴(MENU)

 메뉴를 포함하는 문서 편집기 프로그램

프로그램 실행을 위한 운영 방법

“종료” 항목을 선택하면 프로그램은 종료함

(8)

4-1 메뉴(MENU)

 메뉴 편집기 작성 방법

“문서 편집기”란 제목 표시줄 아래에 위치한 메뉴 표시줄을 볼 수 있는 데 그 메뉴 표시줄에는 “파일”이란 메뉴와 “편집”이란 메뉴가 들어있다.

또 “편집” 항목 안에는 여러 항목들이 나열되어 있다. 이들 메뉴와 항목 들을 우리는 메뉴 편집기를 이용해서 만들 수 있음

(9)

4-1 메뉴(MENU)

 메뉴 편집기 작성 방법

메뉴 표시줄에 항목들이 나타나도록 하려면 메뉴 컨트롤의 속성을 설정 해야하는데 비주얼베이직의 메뉴 표시줄의 “도구” 항목을 선택하고 “메 뉴 편집기” 항목을 선택하면 그 속성을 지정할 수 있는 대화상자를 볼 수 있음

(10)

4-1 메뉴(MENU)

 메뉴 편집기 작성 방법

메뉴 편집기의 속성

Caption

사용자가 볼 수 있는 Text를 표시함

한 철자 앞에 “&” 기호를 입력하면 프로그램 실행시에 󰍫 키와 함께 그 글 자를 함께 누르면 그 메뉴 항목이 펼쳐진다. 또한 󰍫 키 다음의 철자는 “_ 언더스코어와 함께 표시됨

(11)

4-1 메뉴(MENU)

 메뉴 편집기 작성 방법

메뉴 편집기의 속성

Name

보통 “mnu”라는 선행자를 붙이며 한 항목이 가지는 고유한 이름을 나타냄

Index

메뉴 컨트롤 배열을 만들 때 사용하는 속성

프로그램 실행시 사용자 또는, 프로그램의 필요에 의해 메뉴 항목을 동적 으로 생성 및 삭제할 때 용이하게 사용됨

메소드로는 “Load”와 “Unload”가 있음

Load 메소드:프로그램 실행시에 메뉴(배열) 항목을 만든다.

Unload 메소드:프로그램 실행시에 만들어진 메뉴(배열) 항목을 없앤다.

(12)

4-1 메뉴(MENU)

 메뉴 편집기 작성 방법

메뉴 편집기의 속성

바로 가는 키

단축키를 의미

(13)

4-1 메뉴(MENU)

 메뉴 편집기 작성 방법

메뉴 편집기의 속성

Checked

메뉴 항목의 Checked 속성이 True이면 그 항목에 체크 표시를 하고 False 이면 체크 표시가 사라짐

최상위 항목에는 사용할 수 없음

(14)

4-1 메뉴(MENU)

 메뉴 편집기 작성 방법

메뉴 편집기의 속성

Enabled

메뉴 항목의 Enabled 속성이 False이면 그 항목을 회색으로 표시

사용을 금지하도록 만듬

프로그램 실행시 어느 특정 상황에서는 그 항목의 기능이 없어진다는 것을 나타 낼 때 유용함

상위 항목을 회색으로 표시하면 그 하위의 항목들도 사용하지 못함

(15)

4-1 메뉴(MENU)

 메뉴 편집기 작성 방법

메뉴 편집기의 속성

Visible

메뉴 항목을 화면상에서 보이게 또는 사라지게함

사라질 때는 그 항목의 기능을 사용하지 못함

같은 계층에 두 개 이상의 항목이 존재해야함

(16)

4-1 메뉴(MENU)

 메뉴 편집기 작성 방법

“문서 편집기”프로그램에 사용된 메뉴 에디트 컨트롤의 속성 지정

“파일” 메뉴

(17)

4-1 메뉴(MENU)

 메뉴 편집기 작성 방법

“문서 편집기”프로그램에 사용된 메뉴 에디트 컨트롤의 속성 지정

“종료” 항목

(18)

4-1 메뉴(MENU)

 메뉴 편집기 작성 방법

“문서 편집기”프로그램에 사용된 메뉴 에디트 컨트롤의 속성 지정

“종료” 항목

“종료” 항목은 “파일” 메뉴에 종속되어 있다. 이 때는 메뉴 편집기 안에 있 는 우측 화살표를 눌러야 하는데 한번 누를 때마다 ...이 표시되어 종속된 개념을 나타낸다.

(19)

4-1 메뉴(MENU)

 메뉴 편집기 작성 방법

“문서 편집기”프로그램에 사용된 메뉴 에디트 컨트롤의 속성 지정

“편집” 메뉴

(20)

4-1 메뉴(MENU)

 메뉴 편집기 작성 방법

“문서 편집기”프로그램에 사용된 메뉴 에디트 컨트롤의 속성 지정

“편집” 메뉴

“종료” 항목을 설정한 후 “편집” 메뉴를 설정하게 되면 “종료” 항목과 마 찬가지로 “파일” 메뉴에 종속되게 된다. 이를 막기 위해 왼쪽 화살표를 이 용한다.

나머지 항목들도 같은 방법으로 속성을 지정한다.

<그림 4-6>을 보면 “붙이기” 항목과 “전부 지우기” 항목사이에 오목한 줄 이 들어있는 것을 볼 수 있다. 이 줄은 분리자인데 종속된 항목끼리도 나눌 필요가 있을 때 사용한다. 사용법은 Caption 속성에 “-” 하이픈을 지정하 면 된다.

(21)

4-1 메뉴(MENU)

 메뉴 편집기 작성 방법

“문서 편집기”프로그램에 사용된 메뉴 에디트 컨트롤의 속성 지정

“문서편집기” 프로그램에 사용된 메뉴컨트롤의 속성

(22)

4-1 메뉴(MENU)

 메뉴 편집기 작성 방법

“문서 편집기”프로그램에서 사용된 Text 컨트롤의 속성을 지정

(23)

4-1 메뉴(MENU)

 메뉴 편집기 작성 방법

“문서 편집기”프로그램에서 사용된 Text 컨트롤의 속성을 지정

MultiLine 속성은 텍스트 박스 컨트롤에서 쓰이는 속성으로 여러 줄 입 력의 사용 유무를 가림

속성 이름 속성값

(Name) txtEdit

Text ""

MultiLine True

(24)

4-1 메뉴(MENU)

 코드 프로시저 작성

먼저 문서 편집기라는 프로그램이 어떻게 작동하는지 살펴본다.

메뉴를 살펴보면 “파일”과 “편집”이라는 메뉴들이 있다.

“파일” 메뉴에는 “종료” 항목이 있고 “편집” 메뉴에는 “복사하 기”, “오려내기”, “붙이기”, “모두 지우기”라는 항목들이 나열 되어 있다.

속성과 컨트롤을 다 지정했으면 이제 이벤트를 생각한다.

보통 메뉴를 이용하기 위해 마우스로 클릭을 한다.(그 이유로 메뉴에 있는 이벤트는 마우스 클릭밖에는 없다)

메뉴의 어느 항목을 클릭하면 그 항목과 연결된 프로시저가 불 리어서 작동된다.

이런 프로시저를 보통 이벤트 프로시저 또는 이벤트 핸들러라 한다.

(25)

4-1 메뉴(MENU)

 코드 프로시저 작성

문자열 속성

프로그램 실행시만에 설정할 수 있는 텍스트 박스 컨트롤의 몇 가지 중요한 속성

SelStart

선택된 텍스트의 위치를 돌려주거나 선택할 텍스트의 위치를 지정

선택된 텍스트가 없을 경우에는 삽입하고자 하는 문자열의 위치를 말 함(즉, 커서가 놓인 위치)

SelText

텍스트 속성을 가지는 컨트롤들의 공통된 속성으로 현재 선택된 텍스 트를 포함하는 문자열을 돌려주거나 선택할 택스트의 문자열을 지정하 는데 사용

선택한 문자열이 없을 경우에는 NULL(“”)이 저장됨

SelLength

선택된 문자열의 길이를 돌려주거나 선택할 문자열의 크기를 지정

(26)

4-1 메뉴(MENU)

 코드 프로시저 작성

문자열 속성의 사용 예

텍스트 박스의 내용 중 원하는 문자열을 찾는 내용의 코드와 실행된 화면

텍스트 박스의 SelStart 속성과 SelLength 속성을 이용함

Private Sub Form_Load ()

Text1.Text = “Welcome To”

Text1.Text = Text1.Text & “Windows World”

'Text1.Text 에 저장되는 문자열:“Welcome To Windows World”

Dim Search, Where

Search = “Windows” ‘찾을 문자열 Where = InStr(Text1.Text, Search) ‘문자열을 찾음 If Where Then

Text1.SelStart = Where – 1 ‘문자열의 시작위치를 구함 Text1.SelLength = Len(Search) ‘문자열의 길이를 구함 Else

Text1.Text = "String not found."

End If End Sub

(27)

4-1 메뉴(MENU)

 코드 프로시저 작성

‘문서 편집기“ 메뉴별 코드

“파일” 메뉴의 “종료” 항목을 선택했을 때

“편집” 메뉴에서 “복사하기” 항목을 선택했을 때

Private Sub mnuExit_Click()

End '폼 frmEdit를 종료

End Sub

Private Sub mnuCopy_Click()

strCopyText = txtEdit.SelText '문자열 변수 strCopyText에 텍스트 창에서 _ 선택된 영역의 문자(열)를 넘김

txtEdit.SetFocus

mnuPaste.Enabled = True '붙여넣을 내용이 생겼으므로 "붙여넣기" 항목을 _ 활 성화한다.

End Sub

(28)

4-1 메뉴(MENU)

 코드 프로시저 작성

‘문서 편집기“ 메뉴별 코드

“편집” 메뉴에서 “오려내기” 항목을 선택했을 때

“편집” 메뉴에서 “붙이기” 항목을 선택했을 때

Private Sub mnuCut_Click()

strCopyText = txtEdit.SelText '문자열 변수 strCopyText에 텍스트 창에서 _선택 된 영역의 문자(열)를 넘김

txtEdit.SelText = “” '텍스트 창의 선택된 영역을 지움 txtEdit.SetFocus

mnuPaste.Enabled = True '붙여넣을 내용이 생겼으므로 "붙여넣기" 항목을 _ 활성화한다.

End Sub

Private Sub mnuPaste_Click()

txtEdit.SelText = strCopyText '복사하거나 잘라낸 데이터를 텍스트 창의 _ 선택된 영역에 넘김

txtEdit.SetFocus End Sub

(29)

4-1 메뉴(MENU)

 코드 프로시저 작성

‘문서 편집기“ 메뉴별 코드

“편집” 메뉴에서 “전부 지우기” 항목을 선택했을 때

폼이 Load될 때

Private Sub mnuAll_Click()

txtEdit.Text = “” '텍스트 창의 내용을 모두 지움 txtEdit.SetFocus

'텍스트 창의 내용이 없으므로 “전부 지우기”, “복사하기”, “오려내기” _ 항목들을 비 활성화

mnuAll.Enabled = False mnuCopy.Enabled = False mnuCut.Enabled = False End Sub

Private Sub Form_Load()

'텍스트 창의 내용이 없으므로 “편집” 메뉴의 모든 항목을 비 활성화 mnuAll.Enabled = False

mnuCopy.Enabled = False mnuCut.Enabled = False mnuPaste.Enabled = False End Sub

(30)

4-1 메뉴(MENU)

 코드 프로시저 작성

‘문서 편집기“ 메뉴별 코드

텍스트 창의 내용에 변화가 있을 때

Private Sub txtEdit_Change()

'텍스트 창의 내용이 변했다는 것은 편집할 내용이 있다는 뜻이므로_ 붙여넣기를 제 외한 항목을 활성화한다.

mnuCopy.Enabled = True mnuCut.Enabled = True mnuAll.Enabled = True End Sub

(31)

 코드 프로시저 작성

“문서 편집기”프로그램의 실행

이제 프로그램을 실행시킨다.

프로그램이 제대로 작동되지 않는다.

이유는 바로 변수이다. 변수 strCopyText를 잘 살펴보면 변수가 Variant형으로 각 프로 시저마다 선언되어있다. 이는 변수 strCopyText가 각각의 프로시저안에서만 유효하다 는 것이고, 각 이벤트가 일어날 동안만 생성돼 있다는 것이다.

어떻게 해야 하는가

가장 간단한 방법이 Public으로 변수를 선언한다.

“Dim strCopyText As String”의 내용을 폼의 일반선언부에 입력하여 선언한다.

4-1 메뉴(MENU)

(32)

 메뉴 에디트 컨트롤의 INDEX 속성

메뉴 에디트 컨트롤의 Index 속성은 메뉴 컨트롤 배열을 만들 때 사용하 는 속성으로 “Load”와 “Unload” 메소드를 이용해서 메뉴 항목을 동적 으로 생성 및 삭제할 때 용이하게 사용할 수 있는 속성

비주얼베이직에서는 변수만 배열로 사용할 수 있는 것이 아니라 컨트롤 도 배열로 만들어 사용가능

다음은 해당 메뉴항목을 컨트롤 배열로 선언하는 방법을 보여줌

4-1 메뉴(MENU)

(33)

 메뉴 에디트 컨트롤의 INDEX 속성

메뉴 편집기에서 “색상표” 항목의 인덱스 속성을 0으로 설정하게 되면 그 메뉴항목은 컨트롤 배열로 선언되어 다음과 같이 Load 메소드에 의 해 또 다른 메뉴항목을 생성할 수 있고 생성된 메뉴항목을 UnLoad 메소 드에 의해 삭제할 수 있다.

메뉴항목의 생성

메뉴항목의 삭제

4-1 메뉴(MENU)

'마지막 항목의 인덱스를 1 증가 LastItem = LastItem + 1

'증가된 인덱스로 항목을 생성 Load mnuPalletes(LastItem)

'생성된 항목에서 마지막 항목을 삭제하고 인덱스를 1 감소 Unload mnuPalletes(LastItem)

LastItem = LastItem - 1

(34)

 팝업 메뉴(Popup Menu)

메뉴 표시줄에서 선택하지 않고 특정 영역을 선택했을 때 (마우스의 오 른쪽 단추를 클릭) 나타나는 메뉴를 말함

메뉴 표시줄의 메뉴와 작성하는 방법이 같으나 PopupMenu 메소드를 이용해서 메뉴를 표시함

4-1 메뉴(MENU)

객체.PopupMenu 메뉴이름, [ flags, x, y, boldcommand ]

(35)

 팝업 메뉴(Popup Menu)

다음은 앞서 작성한 문서 편집기의 코드내용에 다음의 이벤트 프로시저 를 추가했을 때의 실행 화면이다. 실행 화면에서 보면 폼 위에서 마우스 오른쪽 버튼을 눌렀을 경우 먼저 작성된 편집 메뉴의 항목들이 팝업되는 것을 볼 수 있다.

4-1 메뉴(MENU)

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then '마우스 오른쪽 버튼일 경우

PopupMenu mnuEdit '“편집” 메뉴를 표시 End If

End Sub

참조

관련 문서

그러자 링컨은 내게 그런 잘생긴 또 다른 얼굴이 있다면 나는 그 얼굴로 다니겠다...

내담자의 영적 성숙을 돕는 것이 상담의 궁극적인 목표인 기독상담자는 내담자의 현재의 영적 성숙도 를 평가하는 것 역시 당연히 필수적인 상담의 전제 가 되지 않을

인간의 영과 하나님의 영의 관계를 나타내는 어려움을 다루는 또 다른 방법은‘차원’이 라는 은유를 다음과 같은 주장으로 대체하는 것이다: 유한한 것은 잠재적으로 또는

따라서 산화피막의 두께는 두꺼워지고, 기공의 크기도 성장하면서 TiO 2 (anatase)의 결정 상의 형성 역시 증가하는 것으로 해석할 수 있다. 또 다른 접근은 인가전압의

세상을 다른 사람과는 다른 방식으로 볼 수 있고, 그 안에서 새로운 문제점들을 찾 아내며, 자신의 머릿속에 떠오른 그 어떤 것을 놓치지 않고 끈기 있게 새로운

나 영화,그림이나 음악에서의 아름다움과는 다른 것이고 또 무용과도 다르다.확실히 태권도의 아름다움이란 태권도 동작의 아름다움이며 그 동작을 수행할 때 느낄

인형은 인간의 대체물로 여성의 감성과 자아를 담는 또 다른 존재이자 자신 의 존재감을 확인 할 수 있는 상징이다. 사물이 갖는 상징성은 일회성이 아니다.

發熱 惡熱 自汗 口渴 喘 小便短赤 心煩 舌紅 舌苔黃燥 脈洪數. 潮熱 便秘 泄瀉 황٠취 腹脹 腹痛 拒按