5장 비주얼베이직을 이용한
기본 프로그래밍 Ⅱ
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
Timer
보통 일정한 시간만큼을 지연시킨 후 어떤 작업을 하려고 할 때 사용되는 컨트롤
Timer 이벤트 프로시저에 하려고 하는 작업의 내용을 기술
Interval 속성에 지정된 일정한 시간만큼을 기다렸다가 Timer 이벤트 프로 시져의 내용을 수행
일단 시작되면 프로그램에 다른 기능들이 작동하더라도 독립적이고 영속 적으로 계속 수행(즉, 멀티태스킹 작업을 한다)
실습 5-1
다음 이미지를 타이머에 설정해놓은 시간만큼 지연시킨 후 일정한 위치로 이동시키는 프로그램을 실습
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
실습 5-1
실행 방법
프로그램이 실행되면 이미지는 좌측 상단에 위치
타이머에 지정된 시간이 될 때마다 일정한 위치만큼씩 이미지가 이동
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
실습 5-1
실행 방법
이미지가 폼의 오른쪽 끝까지 이동하면 다시 폼의 왼쪽 상단에 위치
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
실습 5-1
“TIMER”프로그램에 사용된 컨트롤
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
실습 5-1
속성표
컨트롤 이름 컨트롤 종류 사용된 속성
frmTimer 폼 (Name) = frmTimer
Caption = TIMER
imgPlane 이미지 (Name) = imgPlane
Picture = (아이콘)
trmPlane 타이머 (Name) = trmPlane
Interval = 100
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
실습 5-1
코드 프로시져 작성
폼이 로드될 때
타이머가 가동될 때
Private Sub Form_Load()
'이미지를 폼의 좌측 상단에 위치 시킴 imgPlane.Left = 0
imgPlane.Top = 0 End Sub
Private Sub tmrPlane_Timer()
'이미지를 오른쪽으로 100, 아래쪽으로 50 트윕 씩 이동 imgPlane.Left = imgPlane.Left + 100
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
실습 5-1
코드 프로시져 작성
타이머가 가동될 때
imgPlane.Top = imgPlane.Top + 50
'만일 이미지가 폼의 맨 아래쪽에 오면
If imgPlane.Top > frmTimer.ScaleHeight Then
'이미지를 폼의 좌측 상단에 위치 시킴 imgPlane.Left = 0
imgPlane.Top = 0 End If
End Sub
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
실습 5-2
타이머 컨트롤을 이용해서 현재의 날짜와 시간을 표시하는 기능을 하는 프로그램을 실습
“시계” 프로그램에 사용된 컨트롤
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
실습 5-2
속성표
컨트롤 이름 컨트롤 종류 사용된 속성 frmClock 폼 (Name) = frmClock
Caption = 시계
lblClock 라벨
(Name) = lblClock
Alignment = 2 - 가운데 맞춤 BackColor = 짙은 파랑
Caption = ""
Font = 굵게, 20 ForeColor = 노랑 tmrClock 타이머 (Name) = tmrClock
Interval = 1
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
실습 5-2
코드 프로시져 작성
타이머가 가동될 때
Private Sub tmrClock_Timer()
'라벨에 년,월,일 그리고 시간을 표시
lblClock.Caption = Format(Now, “yyyy년 m월 d일 AMPM h:mm:ss”) End Sub
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
실습 5-3
다음의 그래픽 처리된 옵션 버튼을 선택하여 스톱워치를 작동시키는 프로 그램을 실습
시 분 초 1/10초
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
실습 5-3
실행 방법
프로그램이 실행되면 “STOP” 그림의 옵션버튼이 선택된 상태로 시간은 표시 되지 않는다.
“타이머” 그림의 옵션 버튼을 선택하면 스톱워치가 작동한다.
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
실습 5-3
실행 방법
“STOP” 그림의 옵션 버튼을 선택하면 스톱워치는 더 이상 시간이 증가하지 않 고 멈춘다.
“타이머” 그림의 옵션 버튼을 선택하면 스톱워치가 다시 시작된다.
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
실습 5-3
“STOP WATCH”프로그램에 사용된 컨트롤
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
실습 5-3
속성표
컨트롤 이름 컨트롤 종류 사용된 속성
frmStopWatch 폼 (Name) = frmStopWatch Caption = STOP WATCH
optStart 옵션 버튼
(Name) = optStart Caption = “”
Style = 1 - 그래픽 Picture = Timer01.ICO
oprStop 옵션 버튼
(Name) = optStop Caption = “”
Style = 1 - 그래픽 Picture = Trffc14.ICO TabIndex = 0
Label1 라벨 Caption = “”
Font(Size) = 28 Timer1 타이머 Interval = 100
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
실습 5-3
속성표
옵션 버튼에 그림을 삽입하려면 Style 속성을 “1-그래픽”으로 설정하고 삽입 하려는 그림의 경로를 Picture 속성에 설정
설정된 옵션 버튼은 명령 버튼과 유사한 모양을 가짐
프로그램이 시작될 때는 하나의 옵션 버튼이 선택된 상태로 표시되는데 이때 특정 옵션 버튼을 선택된 상태로 시작하고 싶을 때는 그 옵션 버튼의 TabIndex 속성을 옵션 버튼들 중에서 가장 적은 숫자로 설정
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
실습 5-3
코드 프로시저 작성
일반 선언부
“타이머” 그림의 옵션 버튼을 선택했을 때 '스톱워치의 작동 유무를 설정하는 변수 Dim start As Integer
'시, 분, 초, 1/10 초 각 단위의 값을 저장 Dim msec As Integer
Dim sec As Integer Dim min As Integer Dim hour As Integer
Private Sub optStart_Click()
'스톱워치를 작동 start = 1
End Sub
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
실습 5-3
코드 프로시저 작성
타이머가 가동될 때 Private Sub Timer1_Timer()
'시작 옵션 버튼이 선택되면 If start = 1 Then
'1/10초 단위의 값을 증가 msec = msec + 1
'만약 1초가 되면 1/10초 단위의 값은 다시 0으로 설정하고 _ 초 단위의 값을 1 증가 If msec = 10 Then
msec = 0 sec = sec + 1
End If '만약 1분이 되면 초 단위의 값은 0으로 설정하고 분단위의 값을 1증가 If sec = 60 Then
sec = 0
min = min + 1 End If
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
실습 5-3
코드 프로시저 작성
타이머가 가동될 때
'만약 1시간이 되면 분 단위의 값은 0으로 설정하고 시 단위의 값을 1증가 If min = 60 Then
min = 0
hour = hour + 1 End If
'00:00:00:0의 서식으로 출력하기 위해 분 단위와 초 단위를 두 자리로 설정 frmsec = Format(sec, "00")
frmmin = Format(min, "00")
'현재 가지는 각 단위의 값들을 하나의 문자열로 조합 times = Str(hour) + frmmin + frmsec + Str(msec)
'조합된 문자열을 숫자형으로 변환한 후 서식을 설정하여 표시 Label1.Caption = Format(Val(times), "00:00:00:0")
End If
End Sub
5-1 응용 컨트롤(Control)
타이머 컨트롤
도형
실습 5-3
코드 프로시저 작성
“STOP” 그림의 옵션 버튼을 선택했을 때 Private Sub optStop_Click()
'스톱워치의 작동을 멈추고 시간을 0으로 초기화 start = 0
msec = 0 sec = 0 min = 0 hour = 0 End Sub
5-1 응용 컨트롤(Control)
파일 시스템 관련 컨트롤
새로운 드라이브를 선택하거나 디렉토리를 표시하거나 파일의 목 록을 보기 위해 파일 시스템 컨트롤을 사용
파일 시스템 컨트롤은 기본 컨트롤으로 크게 DriveListBox, DirListBox, FileListBox 세 가지
DriveListBox는 드라이브를 선택할 수 있는 컨트롤이며 DirListBox
는 Directory를, FileListBox는 파일 목록을 보여주는 컨트롤
5-1 응용 컨트롤(Control)
파일 시스템 관련 컨트롤
컨트롤의 속성
DriveListBox의 속성
주로 이름에 drv를 붙임
가장 중요한 속성은 Drive 속성(현재 DriveListBox 컨트롤에서 선 택되어 있는 현재 드라이브를 가짐)
DirListBox의 속성
주로 이름에 dir를 붙임
가장 중요한 속성은 Path 속성(현재 DriveListBox 컨트롤에서 선 택되어 있는 현재 디렉토리를 가짐)
FileListBox의 속성
주로 이름에 fil을 붙임
가장 중요한 속성은 Pattern, Path, FileName
5-1 응용 컨트롤(Control)
파일 시스템 관련 컨트롤
컨트롤의 속성
Pattern 속성
FileListBox에 어떤 파일들을 보여줄 것인지 결정
도스에서 사용했던 와일드카드 문자를 지원하며 *, ? 가 있음
여러 개의 Pattern을 등록하고 싶을 경우에는 세미콜론(;)으로 구 분가능
Pattern 속성에 다음과 같이 입력하면 FileListBox는 jpg와 gif 확 장자를 가진 모든 파일을 출력함
WildCard 문자
* 여러 문자를 의미하는 와일드카드이다. 예를 들면 a*z.jpg라는 와일 드카드를 사용하면 a로 시작하여 z로 끝나는 jpg 확장자를 가진 모 든 파일을 의미한다.
? 한 글자를 의미하는 와일드 카드이다. 예를 들면 a?z.jpg라는 와일 드 카드를 사용하면 a로 시작하여 z로 끝나는 jpg 확장자를 가진 파 일 중에서 가운데 한 글자가 포함된 모든 파일을 의미한다.
*.jpg; *.gif
5-1 응용 컨트롤(Control)
파일 시스템 관련 컨트롤
컨트롤의 속성
Path 속성
파일 리스트를 보여주고자 하는 디렉토리를 갖고 있음
Path 속성에 정확한 디렉토리를 설정하면 FileListBox는 해당 디 렉토리안의 파일 목록을 출력
FileName 속성
FileListBox에서 파일이 선택되었을 때, 파일 이름을 갖고 있음
다음은 파일에 관련된 세 개의 컨트롤들이 차지하는 영역을 도식
화하여 나타낸 그림
5-1 응용 컨트롤(Control)
파일 시스템 관련 컨트롤
실습 5-4
파일 리스트 박스를 선택해서 비트맵 파일과 아이콘 파일을 오
른쪽 이미지에 로드시키며, 그 파일의 경로를 하단의 텍스트 박
스에 출력시켜는 프로그램을 실습
5-1 응용 컨트롤(Control)
파일 시스템 관련 컨트롤
실습 5-4
실행방법
프로그램이 실행되면 현재의 드라이브와 디렉토리 경로를 줌
5-1 응용 컨트롤(Control)
파일 시스템 관련 컨트롤
실습 5-4
실행방법
드라이브 리스트 박스에서는 드라이브를 변경할 수 있으며 디렉토
리 리스트 박스에서는 선택된 드라이브안의 디렉토리를 변경가능
5-1 응용 컨트롤(Control)
파일 시스템 관련 컨트롤
실습 5-4
실행방법
드라이브 변경시 만약 드라이브가 준비되지 않았을 경우에는 에러 메시지를 표시
5-1 응용 컨트롤(Control)
파일 시스템 관련 컨트롤
실습 5-4
실행방법
디렉토리 리스트 박스에서 비트맵이나 아이콘 파일이 들어있는 디 렉토리를 선택하면 그 파일 리스트를 파일 리스트 박스에 나타냄
5-1 응용 컨트롤(Control)
파일 시스템 관련 컨트롤
실습 5-4
실행방법
파일 리스트 박스에서 나타난 그림파일을 선택하면 그림이 오른쪽 이미지에 로드되며 하단의 텍스트 박스엔 선택된 파일의 경로를 표시
5-1 응용 컨트롤(Control)
파일 시스템 관련 컨트롤
실습 5-4
FILE 프로그램에 사용된 컨트롤
그림 삽입 해야함!!!
5-1 응용 컨트롤(Control)
파일 시스템 관련 컨트롤
실습 5-4
속성표
파일 리스트 박스의 Pattern 속성은 디렉토리안의 파일 리스트를 나타낼 때 이 속성에 설정된 패턴의 파일 리스트만을 표시한다
예로 “*.EXE”로 설정하면 확장자가 “EXE”인 파일만을 표시하고, 세미콜 론으로 분리해서 여러 가지의 패턴을 설정할 수도 있다.
컨트롤 이름 컨트롤 종류 사용된 속성
frmFile 폼 (Name) = frmFile Caption = FILE drvFile 드라이브 리스트 박스 (Name) = drvFile dirFile 디렉토리 리스트 박스 (Name) = dirFile filFile 파일 리스트 박스 (Name) = filFile
Pattern = *.ico;*.bmp
imgFile 이미지
(Name) = imgFile
BorderStyle = 1 - 단일고정 stretch = True
txtFile 텍스트 박스 (Name) = txtFile Text =“”
5-1 응용 컨트롤(Control)
파일 시스템 관련 컨트롤
실습 5-4
코드 프로시저 작성
드라이브가 변경되었을 때
Private Sub drvFile_Change()
'만일 드라이브가 준비되지 않았으면 Err로 분기 On Error GoTo Err
'드라이브를 변경함 ChDrive drvFile.Drive
'변경된 드라이브의 디렉토리를 표시 dirFile.Path = drvFile.Drive
'에러없이 성공적으로 드라이브가 변경되면 Exit Sub
'에러가 발생했을 경우 Err:
MsgBox ”드라이브가 준비되지 않았습니다.”, vbExclamation, “오류”
drvFile.Drive = dirFile.Path End Sub
5-1 응용 컨트롤(Control)
파일 시스템 관련 컨트롤
실습 5-4
코드 프로시저 작성
디렉토리가 변경되었을 때
파일을 선택했을 때
Private Sub dirFile_Change()
'변경된 디렉토리의 파일 리스트를 표시 filFile.Path = dirFile.Path
End Sub
Private Sub filFile_Click()
'파일 이름을 포함하지 않은 경로를 넘김 DirPath = filFile.Path
'파일 이름까지 포함한 경로를 넘김
FilePath = DirPath & "\" & filFile.filename
'그림파일을 실행함
imgFile.Picture = LoadPicture(FilePath) '그 파일의 전체경로를 텍스트 박스에 표시 txtFile.Text = FilePath
End Sub