Калькулятор массива управления в VB6 - PullRequest
0 голосов
/ 11 июня 2018

В моем компьютерном классе мы работали над использованием управляющих массивов для создания базового калькулятора.Имейте в виду, я никогда раньше не работал с массивами управления.Вот код, который у меня сейчас есть:

Option Explicit
Private Sub CmdCalc_Click(Index As Integer)
    Dim TempSave1 As Double
    Dim Answer As Double
    Dim Symbol As String
    Dim TempSave2 As Double

    If CmdCalc(Index) = 10 Then
        TempSave1 = LblOutput.Caption
        Symbol = "/"
    ElseIf CmdCalc(Index) = 11 Then
        TempSave1 = LblOutput.Caption
        Symbol = "*"
    ElseIf CmdCalc(Index) = 12 Then
        TempSave1 = LblOutput.Caption
        Symbol = "-"
    ElseIf CmdCalc(Index) = 14 Then
        TempSave1 = LblOutput.Caption
        Symbol = "+"
    End If

    LblOutput.Caption = ""

    If Index = 13 Then
        TempSave2 = LblOutput.Caption
        Answer = TempSave1 & Symbol & TempSave2
    End If

    If Index = 0 Or 1 Or 2 Or 3 Or 4 Or 5 Or 6 Or 7 Or 8 Or 9 Or 10 Or 11 Or 12 Or 14 Then
        LblOutput.Caption = LblOutput.Caption & CmdCalc(Index).Caption
    End If
End Sub


Private Sub CmdClear_Click()
    LblOutput.Caption = ""
End Sub

Единственная проблема, с которой я, похоже, сталкиваюсь, заключается в том, что после нажатия кнопки «=» переменная TempSave2 (используемая для получения моего ответа) становится пустой вместоимея номер, набранный пользователем. Я не уверен, как это исправить, я попытался переставить почти все это.Любая помощь приветствуется.

Первый пост здесь, пожалуйста, извините за плохой макет!

Спасибо, Кейран.

enter image description here

Извините, ужасныйцветовая схема.Моя идея состояла в том, что если мой учитель заставляет меня изучать эту ужасную концепцию, он может справиться с ужасными цветами: P

1 Ответ

0 голосов
/ 11 июня 2018

Во-первых, вы хотите проверить значение индекса ниже, а не CmdCalc (Индекс):

If Index = 10 Then
    TempSave1 = LblOutput.Caption
    Symbol = "/"
ElseIf Index = 11 Then
    TempSave1 = LblOutput.Caption
    Symbol = "*"
ElseIf Index = 12 Then
    TempSave1 = LblOutput.Caption
    Symbol = "-"
ElseIf Index = 14 Then
    TempSave1 = LblOutput.Caption
    Symbol = "+"
End If

Далее ваша строка:

If Index = 0 Or 1 Or 2 Or 3 Or 4 Or 5 Or 6 Or 7 Or 8 Or 9 Or 10 Or 11 Or 12 Or 14 Then

не выполняет то, что вы думаетеэто делает.Он оценивает все операторы Or вместе, а затем сравнивает их с индексом.Это как если бы оно было написано со следующими круглыми скобками:

If Index = (0 Or 1 Or 2 Or 3 Or 4 Or 5 Or 6 Or 7 Or 8 Or 9 Or 10 Or 11 Or 12 Or 14) Then

Я считаю, что код будет ТОЛЬКО оценен в true, если Index = 14, но я не выполнил фактическую битовую математику, но независимо, это явно нечто вы хотите.

Есть несколько способов написать это, но самый короткий может быть:

If (Index >= 0 And Index <= 12) Or Index = 14 Then

Не видя реального экрана, я не могу комментировать остальную часть кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...