-Untuk properties dari masing-masing objek, saya contohkan seperti dibawah ini, dengan letak
-masing-masing objek disesuaikan dengan gambar diatas.
-Textbox 1:
-(Name) : txtDisplay
-Alignment: 1-Right Justify
-Text : (kosongkan)
-Maxlength : 12
-Command Button 1:
-(Name) : cmdAngka
-Index : 1
-Caption : 1
-Command Button 2:
-(Name) : cmdAngka
-Index : 2
-Caption : 2
-Command Button 3:
-(Name) : cmdAngka
-Index : 3
-Caption : 3
-Command Button 4:
-(Name) : cmdAngka
-Index : 4
-Caption : 4
-Command Button 5:
-(Name) : cmdAngka
-Index : 5
-Caption : 5
-Command Button 6:
-(Name) : cmdAngka
-Index : 6
-Caption : 6
-Command Button 7:
-(Name) : cmdAngka
-Index : 7
-Caption : 7
-Command Button 8:
-(Name) : cmdAngka
-Index : 8
-Caption : 8
-Command Button 9:
-(Name) : cmdAngka
-Index : 9
-Caption : 9
-Command Button 10:
-(Name) : cmdAngka
-Index : 0
-Caption : 0
-Command Button 11:
-(Name) : cmdPlusMinus
-Caption : +/-
-Command Button 12:
-(Name) : cmdKoma
-Caption : .
-Command Button 13:
-(Name) : cmdOperator
-Index : 1
-Caption : +
-Command Button 14:
-(Name) : cmdOperator
-Index : 2
-Caption : -
-Command Button 15:
-(Name) : cmdOperator
-Index : 3
-Caption : x
-Command Button 16:
-(Name) : cmdOperator
-Index : 4
-Caption : /
-Command Button 17:
-(Name) : cmdClearEntry
-Caption : CE
-Command Button 18:
-(Name) : cmdClear
-Caption : C
-Command Button 19:
-(Name) : cmdSamaDengan
-Caption : =
-Berikutnya, Anda tinggal membuat coding dari kalkulator tersebut. Jika Anda mengikuti semua
-setting properties seperti diatas, maka codingnya saya contohkan seperti ini:
-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)
-Else
-txtDisplay.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
Credit:Kira03
Thanks To adri