Kontrol array adalah kelompok dari beberapa kontrol dengan nama yang sama dan event procedure yang sama juga. penggunaan kontrol array memberikan kita kemudahan dalam pembuatan Source Code nya karena kita bisa menggunakan 1 sub procedure untuk mengatur beberapa kontrol.
Kali ini gua mau bikin kontrol array CommandButton yang di aplikasikan pada program kalkulator sederhana.
Buka program Microsoft Visual Basic 6.0. Siapkan 1 TextBox dan 18 buah CommandButton, atur tampilan seperti gambar di bawah ini.
CommandButton
Kali ini gua mau bikin kontrol array CommandButton yang di aplikasikan pada program kalkulator sederhana.
Buka program Microsoft Visual Basic 6.0. Siapkan 1 TextBox dan 18 buah CommandButton, atur tampilan seperti gambar di bawah ini.
TextBox1.
- Name = "TxtDisplay"
- Locket = True
CommandButton
- Untuk command button ini semua namanya di samakan : CmdNumber, secara otomatis commandbutton dengan nama CmdNumber menjadi kontrol array.
- Atur caption command button seperti design di atas.
Berikut ini Code nya.
Option Explicit
Dim Angka1 As Double
Dim Angka2 As Double
Dim SubNy As String
Dim statSub As Boolean
Private Sub CmdNumber_Click(Index As Integer)
If Trim(UCase(TxtDisplay.Text)) = "ERROR." Then
If Trim(UCase(CmdNumber(Index).Caption)) = "CLE" Then GoTo ClearAll
Exit Sub
End If
Select Case Trim(UCase(CmdNumber(Index).Caption))
Case Is = "CLE"
ClearAll:
statSub = False
TxtDisplay.Text = 0
Angka1 = 0
Angka2 = 0
SubNy = ""
Case Is = "DEL"
statSub = False
If Len(TxtDisplay.Text) = 1 Then
TxtDisplay.Text = 0
Else
TxtDisplay.Text = Mid(TxtDisplay.Text, 1, Len(TxtDisplay.Text) - 1)
End If
Case Is = "/", "*", "-", "+"
If SubNy = "" Then
statSub = True
Angka1 = TxtDisplay.Text
SubNy = CmdNumber(Index).Caption
Else
If statSub = True Then
SubNy = CmdNumber(Index).Caption
Else
Angka2 = TxtDisplay.Text
KalkulasiHasil
statSub = True
End If
End If
Case Is = "="
If SubNy <> "" Then
Angka2 = TxtDisplay.Text
KalkulasiHasil
End If
statSub = True
Case Is = "."
If statSub = True Then
TxtDisplay.Text = 0
End If
InsertKoma
statSub = False
Case Is = "0"
If statSub = True Then
TxtDisplay.Text = 0
End If
InsertNol
statSub = False
Case Else
If statSub = True Then
TxtDisplay.Text = 0
End If
TxtDisplay.Text = Val(TxtDisplay.Text & Trim(CmdNumber(Index).Caption))
statSub = False
End Select
End Sub
Private Sub KalkulasiHasil()
Select Case SubNy
Case Is = "/"
If Angka2 = 0 Then
TxtDisplay.Text = "Error."
Else
TxtDisplay.Text = Angka1 / Angka2
End If
Case Is = "*"
TxtDisplay.Text = Angka1 * Angka2
Case Is = "-"
TxtDisplay.Text = Angka1 - Angka2
Case Is = "+"
TxtDisplay.Text = Angka1 + Angka2
End Select
Angka1 = 0
Angka2 = 0
SubNy = ""
End Sub
Private Sub InsertNol()
If Trim(TxtDisplay.Text) = "0" Then
TxtDisplay.Text = 0
Else
TxtDisplay.Text = TxtDisplay.Text & 0
End If
End Sub
Private Sub InsertKoma()
Dim L As Integer
For L = 1 To Len(TxtDisplay.Text)
If Mid(TxtDisplay.Text, L, 1) = "." Then
GoTo LewatInsert
End If
Next L
TxtDisplay.Text = TxtDisplay.Text & "."
LewatInsert:
End Sub
Private Sub Form_Load()
TxtDisplay.Text = 0
Angka1 = 0
Angka2 = 0
SubNy = ""
statSub = False
End Sub
Dim Angka1 As Double
Dim Angka2 As Double
Dim SubNy As String
Dim statSub As Boolean
Private Sub CmdNumber_Click(Index As Integer)
If Trim(UCase(TxtDisplay.Text)) = "ERROR." Then
If Trim(UCase(CmdNumber(Index).Caption)) = "CLE" Then GoTo ClearAll
Exit Sub
End If
Select Case Trim(UCase(CmdNumber(Index).Caption))
Case Is = "CLE"
ClearAll:
statSub = False
TxtDisplay.Text = 0
Angka1 = 0
Angka2 = 0
SubNy = ""
Case Is = "DEL"
statSub = False
If Len(TxtDisplay.Text) = 1 Then
TxtDisplay.Text = 0
Else
TxtDisplay.Text = Mid(TxtDisplay.Text, 1, Len(TxtDisplay.Text) - 1)
End If
Case Is = "/", "*", "-", "+"
If SubNy = "" Then
statSub = True
Angka1 = TxtDisplay.Text
SubNy = CmdNumber(Index).Caption
Else
If statSub = True Then
SubNy = CmdNumber(Index).Caption
Else
Angka2 = TxtDisplay.Text
KalkulasiHasil
statSub = True
End If
End If
Case Is = "="
If SubNy <> "" Then
Angka2 = TxtDisplay.Text
KalkulasiHasil
End If
statSub = True
Case Is = "."
If statSub = True Then
TxtDisplay.Text = 0
End If
InsertKoma
statSub = False
Case Is = "0"
If statSub = True Then
TxtDisplay.Text = 0
End If
InsertNol
statSub = False
Case Else
If statSub = True Then
TxtDisplay.Text = 0
End If
TxtDisplay.Text = Val(TxtDisplay.Text & Trim(CmdNumber(Index).Caption))
statSub = False
End Select
End Sub
Private Sub KalkulasiHasil()
Select Case SubNy
Case Is = "/"
If Angka2 = 0 Then
TxtDisplay.Text = "Error."
Else
TxtDisplay.Text = Angka1 / Angka2
End If
Case Is = "*"
TxtDisplay.Text = Angka1 * Angka2
Case Is = "-"
TxtDisplay.Text = Angka1 - Angka2
Case Is = "+"
TxtDisplay.Text = Angka1 + Angka2
End Select
Angka1 = 0
Angka2 = 0
SubNy = ""
End Sub
Private Sub InsertNol()
If Trim(TxtDisplay.Text) = "0" Then
TxtDisplay.Text = 0
Else
TxtDisplay.Text = TxtDisplay.Text & 0
End If
End Sub
Private Sub InsertKoma()
Dim L As Integer
For L = 1 To Len(TxtDisplay.Text)
If Mid(TxtDisplay.Text, L, 1) = "." Then
GoTo LewatInsert
End If
Next L
TxtDisplay.Text = TxtDisplay.Text & "."
LewatInsert:
End Sub
Private Sub Form_Load()
TxtDisplay.Text = 0
Angka1 = 0
Angka2 = 0
SubNy = ""
statSub = False
End Sub