2012-01-29 2 views
1

Я создаю простой калькулятор на VB6.Сделать символ появляется только один раз на VB6

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

textScreen.Text = textScreen.Text & "+" 

Вот результат при нажатии кнопки некоторые номер, а затем, нажав на в знак плюс кнопка несколько раз:

75+++++++ 

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

92+ 

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

58+4+ 

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

ответ

3

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


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

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

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 лет.)

+0

Это именно то, что я ищу. Ты мой герой! Спасибо огромное! +1 для вас тоже. – vurquee

1

Вы могучий просто проверьте, был ли последний символ в тексте «+»:

If Mid(textScreen.Text, Len(textScreen.Text), 1) <> "+" Then 
    textScreen.Text = textScreen.Text & "+" 
    End If 
+0

+1 для функций ** Mid ** и ** Len **. Благодарю. – vurquee

Смежные вопросы