Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование action, загвоздка в последнем рывке 
:(
    Опции темы
maximusoida
  Дата 3.5.2011, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 3.5.2011

Репутация: нет
Всего: нет



Здравствуйте делаю для лабы калькулятор я его почти закончил, но препод попросил сделать ввод с клавы. Мысленно я знаю как это сделать, но физически у меня не выходит, может кто подскажет? Моя прога полностью здесь 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; 
} 
}
Код
Код






PM MAIL   Вверх
Riviero
Дата 6.5.2011, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 25.3.2010

Репутация: 2
Всего: 3



Цитата(maximusoida @  3.5.2011,  18:41 Найти цитируемый пост)
void __fastcall TForm1::StaticText1KeyPress(TObject *Sender, char &Key) 


В этой процедуре пиши обработчик на +,-,*,/,= 
после обработки также  пишешь Key = 0.





Это сообщение отредактировал(а) Riviero - 6.5.2011, 14:20
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1932 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.