Заставить персонажа появиться только один раз на VB6 - PullRequest
1 голос
/ 29 января 2012

Я создаю простой калькулятор на VB6.

Вот мой код, над которым я работаю:

    textScreen.Text = textScreen.Text & "+"

Вот результат, когда я нажимаю * цифровые кнопки , после чего нажимаю на кнопка со знаком плюс несколько раз:

    75+++++++

Мне бы хотелось, чтобы знак плюс появлялся только один раз, даже если я нажму на его кнопка много раз:

    92+

... и когда я снова нажимаю на цифровые кнопки , затем нажимаю на кнопке со знаком плюс я бы хотел, чтобы знак плюс снова появился:

    58+4+

Это похоже на калькулятор по умолчанию в Windows 7.

Ответы [ 2 ]

3 голосов
/ 29 января 2012

Ну, для этого есть разные подходы. Но в общем, я бы не просто конкатенировал какую-то строку. Таким образом, вам придется анализировать строку позже, вместо того, чтобы просто решить запрошенный термин. Вместо этого попробуйте создать стек с вашими операциями / числами на нем; просто посмотрите в Интернете примеры калькуляторов.


В любом случае, для этого вам нужно каким-то образом сохранить последнюю операцию (например, я ввел цифру или оператора?)

Если вы хотите ограничить калькулятор простыми операциями без скобок и т. Д., Вы можете использовать для этого логическое значение:

Dim lastOp As Boolean

Затем, перед добавлением + (или любого другого оператора):

If Not lastOp Then
    textScreen.Text = textScreen.Text & "+"
    lastOp = true
End If

При добавлении любой цифры (например,):

lastOp = false
textScreen.Text = textScreen.Text & "0"

(Не рассчитывайте на 100% безошибочный код, думаю, я не касался VB6 уже 8 лет.)

1 голос
/ 29 января 2012

Вы можете просто проверить, был ли последний символ в тексте "+":

    If Mid(textScreen.Text, Len(textScreen.Text), 1) <> "+" Then
    textScreen.Text = textScreen.Text & "+"
    End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...