5장 기본 컨트롤 응용프로그래밍
목차 5.1 입체(3D)효과 글자 출력 5.2 마우스 및 키보드 인터페이스 5.3 워드 프로세서 글꼴상자 5.4 같이 움직이는 리스트 상자 5.5 움직이는 그림판 만들기 5.6 자동으로 문자 스크롤 시키기 5.7 단어 검색기 5.8 탁상 계산기 2018-12-01 수원과학대 컴퓨터정보과
5.1 입체(3D)효과글자 출력 ScaleMode 시스템상수 vbTwips (1) vbPoints (2) Option Explicit Dim i As Integer Dim sx As Integer Dim sy As Integer Private Sub Form_Load() Form1.AutoRedraw = True Form1.ForeColor = vbBlue Form1.ScaleMode = vbPixels Form1.FontBold = True sx = 10 sy = 10 For i = 10 To 1 Step -1 CurrentX = sx + i CurrentY = sy + i If i = 1 Then Form1.ForeColor = vbWhite Form1.Print "멋진 3D 효과!" Next End Sub ScaleMode 시스템상수 vbTwips (1) vbPoints (2) vbPixels (3) vbCharacters (4) vbInches (5) vbMillimeters (6) vbCentimeters (7) 2018-12-01 수원과학대 컴퓨터정보과
5.1 입체(3D)효과글자 출력 폼의 특별 속성들 속성명 기능 AutoRedraw True : 그래픽모드 출력 ScaleMode 위치 지정단위의 지정 CurrentX 폼의 현재 가로 출력 위치 CurrentY 폼의 현재 세로 출력 위치 2018-12-01 수원과학대 컴퓨터정보과
5.2 마우스와 키보드 인터페이스 프로그램 개요 마우스의 실시간 X,Y 좌표 표시 마우스 버튼 눌림 표시 키보드 입력 표시 아스키(ASCII)코드값 출력 특수키 입력값 출력 2018-12-01 수원과학대 컴퓨터정보과
화면 디자인 객체 만들기 (p.175) 총 6개의 Label Shape2 Fillcolor : 노랑 Fillestyle : 0-단색 객체 만들기 (p.175) Label5 Backcolor조정 총 6개의 Label CheckBox3개 (이름) : 왼쪽 (이름) : 중간 (이름) : 오른쪽 모두 backcolor조정 Frame1 Caption:마우스 위치 Backcolor조정 TextBox1개 (이름) : 마우스결과 Text : 내용을 지움 Label1 Backcolor조정 TextBox3개 (이름) : key1 (이름) : key2 (이름) : 키보드결과 모두 text 속성 내용을 지움 Label2/3/4 Backstyle : 0-투명 Shape1 Fillcolor : 연두 Fillestyle :7-대각선교차 2018-12-01 수원과학대 컴퓨터정보과
코딩하기 (p.178) 키 다운 일반키와 특수키를 함께 누르면 발생 인수 ( ): 아스키 코드값 ( ): 특수키 코드값 ( ): 아스키 코드값 ( ): 특수키 코드값 Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) key1 = Str(KeyCode) key2 = Str(Shift) End Sub 2018-12-01 수원과학대 컴퓨터정보과
코딩하기 (p.178) 키 프레스 일반키를 누르면 발생 인수 ( ) : 아스키코드값 ( ) : 아스키코드값 Private Sub Form_KeyPress(KeyAscii As Integer) 키보드결과.Text = Chr(KeyAscii) + “ 가 눌렸습니다." End Sub 2018-12-01 수원과학대 컴퓨터정보과
코딩하기 (p.178) 키 업 키를 눌렀다가 떼면 발생 인수 KeyCode : 아스키코드값 Shift : 특수키코드값 Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) 키보드결과.Text = "" key1 = "" key2 = "" End Sub 2018-12-01 수원과학대 컴퓨터정보과
코딩하기 (p.179) 마우스 다운 Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbLeftButton Then ( ) If Button = vbRightButton Then ( ) If Button = vbMiddleButton Then ( ) If Button = ( ) Then 왼쪽.Value = vbChecked ElseIf Button = ( ) Then 오른쪽.Value = vbChecked 중간.Value = vbChecked Else 왼쪽.Value = vbUnchecked 오른쪽.Value = vbUnchecked 중간.Value = vbUnchecked End If End Sub 2018-12-01 수원과학대 컴퓨터정보과
코딩하기 (p.202) 마우스 업 마우스 버튼이 눌려졌다 뗄 때 모든 값을 초기화함 Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) 왼쪽.Value = vbUnchecked 오른쪽.Value = vbUnchecked 중간.Value = vbUnchecked 마우스결과 = "" End Sub 2018-12-01 수원과학대 컴퓨터정보과
코딩하기 (p.202) 마우스 무브 X/Y값을 Label에 표시함 Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) X좌표 = Str(X) Y좌표 = Str(Y) End Sub 2018-12-01 수원과학대 컴퓨터정보과
코딩하기 (p.180) 키보드 이벤트 특수키 값 KeyDown : 일반키와 특수키를 함께 누를때 KeyPress : 일반키를 누를때 KeyUp : 키를 눌렀다가 뗄때 특수키 값 Shift : 1 (vbShiftMask) Ctrl : 2 (vbCtrlMask) Alt : 4 (vbAltMask) 2018-12-01 수원과학대 컴퓨터정보과
코딩하기 (p.202) 마우스 이벤트 인수값 MouseDown : 마우스 버튼을 누를때 MouseUp : 마우스 버튼을 눌렀다가 뗄 때 MouseMove : 마우스 포인터가 움직일 때 인수값 Button인수 의미 Shift인수 1 vbLeftButton vbShiftMask 2 vbRightButton vbCtrlMask 4 vbMiddleButton vbAltMask 2018-12-01 수원과학대 컴퓨터정보과
TIP Str(정수값) : Chr(정수값) : Str(65) -> “65” Chr(65) -> “a” 2018-12-01 수원과학대 컴퓨터정보과
5.3 선택 프로젝트 화면 구성 Combo1 CheckBox ListBox1 OptionButton Text1 2018-12-01 수원과학대 컴퓨터정보과
동작방식 글꼴 : 텍스트박스의 글꼴 설정 스타일 : 텍스트박스 글꼴 스타일 설정 글자색 : 텍스트박스 글자색상 설정 리스트 박스 : 아이템 선택시 텍스트 박스에 추가됨 2018-12-01 수원과학대 컴퓨터정보과
소스 설명 Form_Load() 글꼴_Click() 리스트박스와 콤보박스에 아이템 추가 ( ) 메소드 이용 글꼴_Click() 선택된 콤보박스의 글꼴이름으로 텍스트박스 글꼴 설정 Text1.Font.Name = 글꼴.Text Text1.FontName = 글꼴.Text 2018-12-01 수원과학대 컴퓨터정보과
소스설명 볼드_Click() 경사체/밑줄/취소선/크게도 텍스트박스 Font 속성 변경 If 볼드.Value = vbChecked Then Text1.Font.Bold = True ElseIf 볼드.Value = vbUnchecked Then Text1.FontBold = False End If 경사체/밑줄/취소선/크게도 텍스트박스 Font 속성 변경 2018-12-01 수원과학대 컴퓨터정보과
소스설명 빨간색f_Click() 파란색/녹색/흰색/회색/검정색도 QBColor() 값만 달리하여 설정 If 빨간색f.Value = True Then Text1.ForeColor = QBColor(12) End If 파란색/녹색/흰색/회색/검정색도 QBColor() 값만 달리하여 설정 2018-12-01 수원과학대 컴퓨터정보과
소스설명 List1_Click() Text1.Text = Text1.Text+List1.Text + " " 텍스트박스의 텍스트 속성에 리스트에서 클릭한 텍스트를 덧붙여 출력 2018-12-01 수원과학대 컴퓨터정보과
추가 기능 텍스트 박스를 더블클릭하면 리스트 박스를 더블클릭하면 텍스트 박스의 문자열 모두 없애기 그 항목을 삭제하기 2018-12-01 수원과학대 컴퓨터정보과
추가 기능 소스 Private Sub Text1_DblClick() End Sub Private Sub List1_DblClick() 2018-12-01 수원과학대 컴퓨터정보과
5.4 같이 움직이는 리스트박스 화면 구성 List1 List2 2018-12-01 수원과학대 컴퓨터정보과
소스 설명 폼 로드시 두 리스트에 항목 추가 Dim i As Integer Private Sub Form_Load() For i = 1 To 200 List1.AddItem " TEST 1 " & i List2.AddItem " TEST 2 " & i Next i End Sub 2018-12-01 수원과학대 컴퓨터정보과
소스 설명 각 리스트를 스크롤할때 서로 같은 위치로 보여주게 함 Private Sub List1_Scroll() List2.TopIndex = List1.TopIndex End Sub Private Sub List2_Scroll() List1.TopIndex = List2.TopIndex 2018-12-01 수원과학대 컴퓨터정보과
5.5 움직이는 그림 화면 구성 픽쳐박스 2018-12-01 수원과학대 컴퓨터정보과
소스 설명 현재 위치값 변수 움직임 설정 변수 Dim dx, dy Dim mov As Boolean 2018-12-01 수원과학대 컴퓨터정보과
소스 설명 픽쳐박스에서 마우스를 클릭한 경우 Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) dx = X dy = Y 'Start moving mov = True End Sub 2018-12-01 수원과학대 컴퓨터정보과
소스 설명 픽쳐박스에서 마우스가 움직이는 경우 Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If mov = True Then Picture1.Left = Picture1.Left + X - dx Picture1.Top = Picture1.Top + Y - dy End If End Sub 2018-12-01 수원과학대 컴퓨터정보과
소스 설명 픽쳐박스에서 마우스 버튼이 해제된경우 Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Stop Moving mov = False End Sub 2018-12-01 수원과학대 컴퓨터정보과
5.6 문장스크롤 화면 구성 Picture1 VSCroll1 Label1 2018-12-01 수원과학대 컴퓨터정보과
소스 설명 폼 로드 Private Sub Form_Load() ' 레이블의 Top값을 픽쳐박스의 높이값으로 설정 Label1.Top = Picture1.Height VScroll1.Min = 0 VScroll1.Max = 50 ' 타이머 실행 상태로 전환 Timer1.Enabled = True End Sub 2018-12-01 수원과학대 컴퓨터정보과
소스 설명 스크롤바 값 변경시 Private Sub VScroll1_Change() Timer1.Interval = ( ) End Sub 2018-12-01 수원과학대 컴퓨터정보과
소스 설명 타이머 Private Sub Timer1_Timer() If Label1.Top > -Label1.Height Then Label1.Top = Label1.Top - 10 Else Label1.Top = Picture1.Height End If End Sub 2018-12-01 수원과학대 컴퓨터정보과
5.7 단어검색기 화면 구성 txtBody cmdFind txtTarget cmdFindNext 2018-12-01 수원과학대 컴퓨터정보과
소스 설명 검색 위치 설정변수 찾기 버튼 다음 찾기 버튼 Private TargetPosition As Integer Private Sub cmdFind_Click() FindText 1 End Sub 다음 찾기 버튼 Private Sub cmdFindNext_Click() FindText TargetPosition + 1 2018-12-01 수원과학대 컴퓨터정보과
소스 설명 검색 함수 Private Sub FindText(ByVal start_at As Integer) Dim pos As Integer Dim target As String target = txtTarget.Text pos = InStr(start_at, txtBody.Text, target) If pos > 0 Then TargetPosition = pos txtBody.SelStart = TargetPosition - 1 txtBody.SelLength = Len(target) txtBody.SetFocus Else MsgBox "더 이상 없네요!" End If End Sub 2018-12-01 수원과학대 컴퓨터정보과
5.8 탁상 계산기 만들기(p.197) 계산기 화면 구성 Label6개 TextBox3개 CommandButton13개 2018-12-01 수원과학대 컴퓨터정보과
계산기 동작방식 op 초기값 “@” 숫자 버튼 “=“ 버튼 “C” 버튼 종료 버튼 op가 “@”라면 계속 피연산자1에 입력 프로그램 종료 2018-12-01 수원과학대 컴퓨터정보과
계산기 코딩 op값 초기화 (p.198) op는 “@”값을 가질때 피연산자1값 입력 연산자 버튼이 입력되면 “@”값이 “+”, “-”, “*”, “/”로 바뀌고 피연산자2 입력 Option Explicit Dim op As String Private Sub Form_Load() op = "@" End Sub 2018-12-01 수원과학대 컴퓨터정보과
계산기 코딩 각 연산자 버튼 더블클릭하여 코딩(p.198) 각 연산자값을 op에 나타내고 피연산자2를 입력받게 Focus를 이동시킨다. Private Sub Command11_Click() op = "+" Label5.Caption = op Text2.SetFocus End Sub Private Sub Command12_Click() op = "-" Private Sub Command13_Click() op = "*" Label5.Caption = op Text2.SetFocus End Sub Private Sub Command14_Click() op = "/" 2018-12-01 수원과학대 컴퓨터정보과
계산기 코딩 “C” 커맨드 버튼 (p.199) “종료” 버튼 자료의 초기화 Private Sub Command15_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" op = "@" Text1.SetFocus End Sub Private Sub Command17_Click() End End Sub 2018-12-01 수원과학대 컴퓨터정보과
계산기 코딩 “=“ 커맨드 버튼 (p.199) Private Sub Command16_Click() Dim ans As Double If (Text1.Text = "") Or (Text2.Text = "") Then MsgBox ("자료입력이 부족합니다!") Else Select Case op Case "+" ans = Val(Text1.Text) + Val(Text2.Text) Case "-" ans = Val(Text1.Text) - Val(Text2.Text) Case "*" ans = Val(Text1.Text) * Val(Text2.Text) Case "/" ans = Val(Text1.Text) / Val(Text2.Text) End Select Text3.Text = Str(ans) End If End Sub 2018-12-01 수원과학대 컴퓨터정보과
계산기 코딩 숫자 버튼 (p.200~201) 각 숫자 버튼별로 붉은 색 숫자만 바꾸어주면 됨 Private Sub Command1_Click() If op = "@" Then Text1.Text = Text1.Text + "1" Else Text2.Text = Text2.Text + "1" End If End Sub 2018-12-01 수원과학대 컴퓨터정보과
추가 기능 연산자 mod를 추가해본다. 2018-12-01 수원과학대 컴퓨터정보과
추가 기능 소스 mod 버튼 Private Sub mod_Click() End Sub 2018-12-01 수원과학대 컴퓨터정보과
추가 기능 소스 = 버튼 Private Sub Command16_Click() Dim ans As Double If (Text1.Text = "") Or (Text2.Text = "") Then MsgBox ("자료입력이 부족합니다!") Else Select Case op Case "+" … ( ) ( ) End Select Text3.Text = Str(ans) End If End Sub 2018-12-01 수원과학대 컴퓨터정보과