Здравствуйте делаю для лабы калькулятор я его почти закончил, но препод попросил сделать ввод с клавы. Мысленно я знаю как это сделать, но физически у меня не выходит, может кто подскажет? Моя прога полностью здесь http://zalil.ru/30971503, но я думаю проще часть кода здесь разместить: у меня есть быдло код вводе цифр поэтому полностью не буду писать, итак мне нужно реализовать, вот что: нужно реализовать +,-,*,/,= то есть ввёл с клавы число нажал +, ввёл второе число, нажал = и выводится ответ я так понимаю можно использовать action, но как-то я не понимаю как их можно у меня в проге использовать сам код, здесь я его максимально минимизировал, в проге он больше, и сделано больше кнопок | Код | float f=0; // если f==0 то удаляем нуль в строке // и пишем нужное число с кнопки
int arifmetic, backspace; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
ClientHeight = 257; ClientWidth = 499; TStringList *List = new TStringList;
f=0; //Ждем первую цифру arifmetic=0; StaticText1->Text = 0;
} //---------------------------------------------------------------------------
// кнопка С void __fastcall TForm1::Button1Click(TObject *Sender) { StaticText1->Text = "0"; arifmetic= 0; f = 0; }
//Цифра 1--------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { if( f == 0) { StaticText1->Text = "1"; f = 1; } else StaticText1->Text = StaticText1->Text + "1";
//ОСТАЛЬНЫЕ ЦИФРЫ СДЕЛАНЫ ТАК ЖЕ, КРОМЕ 0 ЕСТЕСТВЕННО
//Кнопка +------------------------------------------------------ void __fastcall TForm1::Button25Click(TObject *Sender) { x=StrToFloat(StaticText1->Text); arifmetic = 1; f = 0; } //Кнопка - ----------------------------------------------------------- void __fastcall TForm1::Button24Click(TObject *Sender) { x=StrToFloat(StaticText1->Text); arifmetic = 2; f = 0; } //Кнопка * ------------------------------------------------------------ void __fastcall TForm1::Button23Click(TObject *Sender) { x=StrToFloat(StaticText1->Text); arifmetic = 3; f = 0; } //Кнопка / ---------------------------------------------------------------- void __fastcall TForm1::Button26Click(TObject *Sender) { x=StrToFloat(StaticText1->Text); arifmetic = 4; f = 0; } //Кнопка =----------------------------------------------------------------
void __fastcall TForm1::Button22Click(TObject *Sender) { switch (arifmetic) { case 1: x += StrToFloat(StaticText1->Text); StaticText1->Text=FloatToStrF(x,ffGeneral,7,7); f=0; break; case 2: x -= StrToFloat(StaticText1->Text); StaticText1->Text=FloatToStrF(x,ffGeneral,7,7); f=0; break; case 3: x *= StrToFloat(StaticText1->Text); StaticText1->Text=FloatToStrF(x,ffGeneral,7,7); f=0; break; case 4: x /= StrToFloat(StaticText1->Text); StaticText1->Text=FloatToStrF(x,ffGeneral,7,7); f=0; break; } // ввод цифр с клавы void __fastcall TForm1::StaticText1KeyPress(TObject *Sender, char &Key) { f=0; if (Key<'0' || Key>'9') Key=0; // фильтр ввода switch (Key) {case 1: Button2Click(Sender); break; case 2: Button3Click(Sender); break; case 3: Button4Click(Sender); break; case 4: Button5Click(Sender); break; case 5: Button6Click(Sender); break; case 6: Button7Click(Sender); break; case 7: Button8Click(Sender); break; case 8: Button9Click(Sender); break; case 9: Button10Click(Sender); break; case 10: Button11Click(Sender); break; } }
|
|