Kamis, 26 Februari 2009
chapter 3








Option Explicit

Private Hasil As Double

Private Const opNol = 0

Private Const opTambah = 1

Private Const opKurang = 2

Private Const opKali = 3

Private Const opBagi = 4

Private Operator As Integer

Private NilaiBaru As Boolean

' untuk menghapus karakter terakhir

Private Sub Hapus()

Dim txt As String

Dim min_len As Integer

txt = txtDisplay.Text

If Left$(txt, 1) = "-" Then

min_len = 2

Else

min_len = 1

End If

If Len(txt) > min_len Then

txtDisplay.Text = Left$(txt, Len(txt) - 1)

Else

txtDisplay.Text = "0"

End If

End Sub

' hapus angka, hasil terakhir dan operator

Private Sub cmdClear_Click()

cmdClearEntry_Click

Hasil = 0

Operator = opNol

End Sub

' hapus angka

Private Sub cmdClearEntry_Click()

txtDisplay.Text = ""

End Sub

' menambahkan koma (desimal)

Private Sub cmdKoma_Click()

If InStr(txtDisplay.Text, ".") Then

Beep

Else

If NilaiBaru Then

txtDisplay.Text = "."

NilaiBaru = False

Else

txtDisplay.Text = txtDisplay.Text & "."

End If

End If

End Sub

' Menghitung

Private Sub cmdSamaDengan_Click()

Dim HasilBaru As Double

If txtDisplay.Text = "" Then

HasilBaru = 0

Else

HasilBaru = CDbl(txtDisplay.Text)

End If

Select Case Operator

Case opNol

Hasil = HasilBaru

Case opTambah

Hasil = Hasil + HasilBaru

Case opKurang

Hasil = Hasil - HasilBaru

Case opKali

Hasil = Hasil * HasilBaru

Case opBagi

'Tidak bisa dibagi nol

If HasilBaru = 0 Then

MsgBox "Tidak bisa dibagi 0", vbOKOnly + vbCritical, "Kalku ERROR"

Call cmdClear_Click

Else

Hasil = Hasil / HasilBaru

End If

End Select

Operator = opNol

NilaiBaru = True

txtDisplay.Text = Format$(Hasil)

End Sub

' menuliskan angka

Private Sub cmdAngka_Click(Index As Integer)

If NilaiBaru Then

txtDisplay.Text = Format$(Index)

NilaiBaru = False

Else

txtDisplay.Text = _

txtDisplay.Text & Format$(Index)

End If

End Sub

' tombol tambah/kurang/bagi/kali

Private Sub cmdOperator_Click(Index As Integer)

cmdSamaDengan_Click

Operator = Index

NilaiBaru = True

End Sub

' merubah tanda +/-

Private Sub cmdPlusMinus_Click()

If NilaiBaru Then

txtDisplay.Text = "-"

ElseIf Left$(txtDisplay.Text, 1) = "-" Then

txtDisplay.Text = Right$(txtDisplay.Text, 2)

ElsetxtDisplay.Text = "-" & txtDisplay.Text

End If

End Sub

' filter untuk angka saja yg dapat diketikkan

Private Sub Form_KeyPress(KeyAscii As Integer)

txtDisplay_KeyPress KeyAscii

End Sub

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)

txtDisplay_KeyUp KeyCode, Shift

End Sub

' supaya kursor tetap di kanan

Private Sub txtDisplay_Change()

txtDisplay.SelStart = Len(txtDisplay.Text)

End Sub

Private Sub txtDisplay_GotFocus()

txtDisplay_Change

End Sub

' untuk mengetikkan angka di keyboard

Private Sub txtDisplay_KeyPress(KeyAscii As Integer)

Dim ch As String

ch = Chr$(KeyAscii)

Select Case ch

Case "0"

cmdAngka_Click 0

Case "1"

cmdAngka_Click 1

Case "2"

cmdAngka_Click 2

Case "3"

cmdAngka_Click 3

Case "4"

cmdAngka_Click 4

Case "5"

cmdAngka_Click 5

Case "6"

cmdAngka_Click 6

Case "7"

cmdAngka_Click 7

Case "8"

cmdAngka_Click 8

Case "9"

cmdAngka_Click 9

Case "*", "x", "X"

cmdOperator_Click opKali

Case "+"

cmdOperator_Click opTambah

Case vbCrLf, vbCr, "="

cmdSamaDengan_Click

Case "-"

cmdOperator_Click opKurang

Case "."

cmdKoma_Click

Case "/"

cmdOperator_Click opBagi

Case "C", "c"

cmdClearEntry_Click

End Select

KeyAscii = 0

End Sub

' untuk ketikan angka di numpad

Private Sub txtDisplay_KeyUp(KeyCode As Integer, Shift As Integer)

Select Case KeyCode

Case vbKeyNumpad0

cmdAngka_Click 0

Case vbKeyNumpad1

cmdAngka_Click 1

Case vbKeyNumpad2

cmdAngka_Click 2

Case vbKeyNumpad3

cmdAngka_Click 3

Case vbKeyNumpad4

cmdAngka_Click 4

Case vbKeyNumpad5

cmdAngka_Click 5

Case vbKeyNumpad6

cmdAngka_Click 6

Case vbKeyNumpad7

cmdAngka_Click 7

Case vbKeyNumpad8

cmdAngka_Click 8

Case vbKeyNumpad9

cmdAngka_Click 9

Case vbKeyMultiply

cmdOperator_Click opKali

Case vbKeyAdd

cmdOperator_Click opTambah

Case vbKeySeparator

cmdSamaDengan_Click

Case vbKeySubtract

cmdOperator_Click opKurang

Case vbKeyDivide

cmdOperator_Click opBagi

Case vbKeyDecimal

cmdKoma_Click

Case vbKeyBack, vbKeyDelete

Hapus

End Select

KeyCode = 0

End Sub

posted by beach...i'm coming!!!!!!! but love....you are bullshit @ 19.39  
0 Comments:

Posting Komentar

<< Home
 
 
About Me
Name :
Web URL :
Message :
:) :( :D :p :(( :)) :x
Foto Saya
Nama:
Lokasi: malang, jawa timur, Indonesia
Archives
Archives
Sidebar Section
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis ligula lorem, consequat eget, tristique nec, auctor quis, purus. Vivamus ut sem. Fusce aliquam nunc vitae purus. Aenean viverra malesuada libero. Fusce ac quam.
Sidebar Section

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis ligula lorem, consequat eget, tristique nec, auctor quis, purus. Vivamus ut sem. Fusce aliquam nunc vitae purus. Aenean viverra malesuada libero. Fusce ac quam.

Links
Free Blogger Templates