C Visual Basic Programming - 복습

Cugain 2007.02.21 11:38 조회 수 : 91 추천:101

sitelink1  
sitelink2  
extra_vars5  
extra_vars6  
http://myhome.hanafos.com/~log0/visual_basic.htm

비베강좌(10)<--배운거복습





비베 한달이면 한국불패만큼 한다. - 10. 중간복습 -

오늘은 그동안 배운 모든것들을 동원해 간단한 프로그램을 만들어 보는 것으로 중간 복습을 하겠습니다.

인덱스이름을 관리하는 프로그램을 만들어 볼건데요.

리스트 박스에다 인덱스이름을 소트된 상태로 나열하고, 추가도 하고, 수정도 하고, 삭제도 할 수 있는

그런 프로그램을 만들어 보겠습니다.

컨트롤 이름
          컨트롤 종류
                      수정이 필요한 프로퍼티
 frmlist
  list1
CmbDel
CmbEdit
CmbEnd
CmbInput
CmbSort
              폼
          리스트 박스
          커맨드 버튼
          커맨드 버튼
          커맨드 버튼
          커맨드 버튼
          커맨드 버튼
                      caption="중간복습예제"

                           caption="삭제"
                           caption="수정"
                         caption="끝내기"
                           caption"추가"
                           caption="소트"



프로그램의 소스
'**************************************************
' 삭제 버튼을 클릭하면
'**************************************************
Private Sub CmbDel_Click()

Dim index As Integer

index = List1.ListIndex
If index >= 0 Then
List1.RemoveItem index
If index >= List1.ListCount Then index = index - 1
List1.ListIndex = index
End If

End Sub

'*************************************************
' 수정 버튼을 클릭하면
'*************************************************
Private Sub CmbEdit_Click()

Dim index As Integer
index = List1.ListIndex

If List1.List(index) <> "" Then
 indexname=InputBox("인덱스 명을 입력해 주세요", "수정",List1.List(index))
If indexname <> "" Then
   List1.RemoveItem index
   List1.AddItem indexname, index

End If

End If

End Sub

'***********************************************************
' 종료버튼을 클릭하면
'***********************************************************
Private Sub CmbEnd_Click()
'프로그램을 종료한다.
End

End Sub

'***********************************************************
' 추가버튼을 클릭하면
'***********************************************************
Private Sub CmbInput_Click()
indexname = InputBox("인덱스 명을 입력해 주세요", "추가", "")

If indexname <> "" Then
 List1.AddItem indexname
End If

End Sub

'***********************************************************
' 소트버튼을 클릭하면
'***********************************************************
Private Sub CmbSort_Click()

'인덱스 이름 소팅

Dim indexcount As Integer
Dim IndexSortNum(0 To 300) As Integer
Dim TempList(0 To 300) As String

indexcount = List1.ListCount

For i = 1 To indexcount
TempList(i) = List1.List(i - 1)
Next i

For i = 1 To indexcount
IndexSortNum(i) = 0
For j = 1 To i
 If TempList(j) < TempList(i) Then IndexSortNum(i) = IndexSortNum(i) + 1
 If TempList(j) >= TempList(i) Then IndexSortNum(j) = IndexSortNum(j) + 1
Next j
Next i

For i = 1 To indexcount
List1.List(IndexSortNum(i) - 1) = TempList(i)
Next i

End Sub

'***************************************************
' 프로그램이 시작할때
'***************************************************
Private Sub Form_Load()
'폼의 초기위치를 설정한다.
Me.Move (Screen.Width - Me.Width)-200,(Screen.Height - Me.Height)/2

End Sub


이소스는 제가 직접만든 소스입니다. 그래서 약간 엉성할 수도 있겠네요.

입력은 inputbox()함수를 사용해서 했는데요.

그외에는 이전에 배운 조건문 루프, 리스트 박스, 소트, 배열, 커맨드버튼, 등을 응용해서 만든것입니다.

약간의 추가만 있으면 실제 실용 프로그램에 사용할 수 있는 소스입니다.

에러사항에 대해서도 대처를 해두었습니다.

자세히 살펴 보시고 도움되었으면 합니다.

그리고 소트를 하는 것이 수동식으로 되어 있는데요.

소스를 약간만 손보면 입력이나 수정 삭제가 될때마다 소팅을 자동으로 하게 할 수 있습니다.

그럼 여기서 inputbox()함수에 대해 설명드리고 이번 강좌를 끝내겠습니다.


---- 다음은 도움말에 있는 예제입니다. 이예제만으로도 inputbox를 충분히 이해할 수 있습니다. ----

다음은 사용자가 값을 입력할 수 있도록 하는 InputBox 함수의 다양한 사용방법에 대해서 보여주는 예입니다.

만약 x와 y 위치가 생략되면 대화 상자는 자동적으로 각 축의 가운데 위치로 조정됩니다.

사용자가 확인 단추를 누르거나 ENTER키를 누르면 변수 MyValue에는 사용자가 입력한 값이 포함됩니다.

사용자가 취소 단추를 누르면 길이가 0인 문자열이 반환됩니다.

Dim Message, Title, Default, MyValue
Message = "Enter a value between 1 and 3" '프롬프트 설정.
Title = "InputBox Demo" '제목 설정.
Default = "1" '기본값 설정.
'메시지 화면 표시, 제목, 기본값.
MyValue = InputBox(Message, Title, Default)

'100, 100의 위치에 대화 상자를 표시합니다.
MyValue = InputBox(Message, Title, Default, 100, 100)


이상으로 10회의 비베한달이면 한국불패만큼 한다의 1장이 끝났습니다.

11회부터는 2장이 시작되는데요.

2장에서는 화일관련 컨트롤과 화일을 조작하는 방법에 대한 강좌가 계속될것입니다. 기대해 주시고요..^^  

--------------------------------------------------------------------------------