Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Калькулятор


Автор: Maycal 13.10.2007, 12:16
Доброе время суток, извените за беспокойство, у меня снова возникла проблема. Я немогу вызвать число из памяти.


Код

//----------------------------------------------------------------
void __fastcall TKalk::SetMS (String Text)
//Здесь описываеться преобразование строки в десятичное число 
{
NumberMR = StrToFloat (Text);
}
//----------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
//Здесь производится вызов метода SetMS
{
Result1->SetMS (Edit1->Text);
}
//В этоге,  при нажатие на форме кноку MS, переменная NumberMR принимает значение введенного числа в Edit1
//----------------------------------------------------------------------- 


Подскажите пожалуйста, как сделать, чтобы при нажатие на кнопку MR в компоненте Edit1 появлялось число, которое запомнила переменная NumberMR? 

Автор: archimed7592 13.10.2007, 12:22
Читай правила.
Нужный тебе раздел не далеко: http://forum.vingrad.ru/index.php?show_type=forum&showforum=94

Код

Edit1->Text = NumberMR;

Автор: Maycal 13.10.2007, 14:51
Скажите пожалуйста, почему здесь не нужно преобразовывать десятичное число в текс командой String? У меня в самоучителе написано чтото типо 
Код

Edit1->Text = String (NumberMR);

Автор: Maycal 13.10.2007, 16:15
Слушайте, я сейчас делаю кнопки для калькулятора. Мне нужно что при нажатие на конопку 1, в Edit1 появлялась цифра 1. А когда я нажимаю еще раз, появлялась 11, потом 111, 1111 и т.д. 
А у меня появляеться только 1 и все, при повторном нажатие ничего не происходит. Помогите, не как немогу чообразить!

Автор: archimed7592 13.10.2007, 16:37
Цитата(Maycal @  13.10.2007,  14:51 Найти цитируемый пост)
Скажите пожалуйста, почему здесь не нужно преобразовывать десятичное число в текс командой String? У меня в самоучителе написано чтото типо 

Может и нужно... Я билдер последний года полтора назад видел.
Раз книжка с ответами есть, то откуда вопросы? smile


Цитата(Maycal @  13.10.2007,  16:15 Найти цитируемый пост)
Слушайте, я сейчас делаю кнопки для калькулятора. Мне нужно что при нажатие на конопку 1, в Edit1 появлялась цифра 1. А когда я нажимаю еще раз, появлялась 11, потом 111, 1111 и т.д. 
А у меня появляеться только 1 и все, при повторном нажатие ничего не происходит. Помогите, не как немогу чообразить! 

Ну, что-то типа
Код

Edit1->Text = Edit1->Text + String(NumberMR);
// или короче, но не факт, что с пропертями так можно:
Edit1->Text += String(NumberMR);

Автор: pndfy 15.10.2007, 18:36
Цитата

Слушайте, я сейчас делаю кнопки для калькулятора. Мне нужно что при нажатие на конопку 1, в Edit1 появлялась цифра 1. А когда я нажимаю еще раз, появлялась 11, потом 111, 1111 и т.д. 


Точно не помню но вроде как-то так должно работать smile
Код

Edit1->Text =  Edit1->Text + "1";

Если не получится- отпишись и я поюзаю билдер и дам правильный ответ.

Автор: Maycal 16.10.2007, 20:32
Да, работает, спасибо большое!

Автор: Maycal 19.10.2007, 15:04
Я хотел спросить, как называются для Builder'a кнопки Стереть (Backpase), пробел (spase) и Энтер (Enter)?
Они мне нужны для того, чтоб задать кое-какое ограничение. 

Автор: jonie 19.10.2007, 23:21
пишешь прожку и смотришь...
Код

void __fastcall TForm1::Edit1KeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
  ShowMessage("0x"+IntToHex(Key,4));
}

Автор: Maycal 21.10.2007, 18:49
В моем калькуляторе используеться объявление переменных типа float. При деление например, для возвращения полученного значения в результате деления функцией используеться FloatToStrF. Все это выглядет следующим образом:
Код

Result1 = Number/Number2;
return (String(FloatToStrF(Result1, ffNumber,8,1))); 

Вследствие, при деление например числа 65 на 23 получаеться 2.0, а должно получиться что-то типо: 2,82..
Я слышал что увеличить точность может сделать оператор double если не ошибаюсь. Скажите пожалуйста, как им пользоваться на моем примере? 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)