Вопрос № 172696: Добрый день уважаемые эксперты! Помогите пожалуйста в создании калькулятоа и конвертера валюты! вот критерии: Создать калькулятор с конвертером валют, позволяющий производить математ...
Вопрос № 172696:
Добрый день уважаемые эксперты! Помогите пожалуйста в создании калькулятоа и конвертера валюты! вот критерии: Создать калькулятор с конвертером валют, позволяющий производить математические операции валютами и переводить деньги из одной валюты в другую, учитывая различные курсы валют. Организовать фиксированный ввод информации в поля. Создать обработчик ошибок, который бы позволял перехватывать ошибки при неправильном вводе информации
в поля и выдовал бы сообщения об этих ошибках. и можно небольшие объяснения рядом с процедурами! Заранее огромное спасибо ВАМ!
procedure TCalculator2.FormCreate(Sender: TObject); begin Edit1.Text:='0'; D:=0;A:=0;B:=0;C:=0;F:=0; end;
procedure TCalculator2.FormActivate(Sender: TObject); begin Edit1.SetFocus; end;
procedure TCalculator2.BitBtn18Click(Sender: TObject); begin Edit1.SelText:=FloatToStr(1); end;
procedure TCalculator2.BitBtn14Click(Sender: TOb
ject); begin Edit1.SelText:=FloatToStr(2); end;
procedure TCalculator2.BitBtn10Click(Sender: TObject); begin Edit1
SelText:=FloatToStr(3); end;
procedure TCalculator2.BitBtn19Click(Sender: TObject); begin Edit1.SelText:=FloatToStr(4); end;
procedure TCalculator2.BitBtn15Click(Sender: TObject); begin Edit1.SelText:=FloatToStr(5); end;
procedure TCalculator2.BitBtn11Click(Sender: TObject); begin Edit1.SelText:=FloatToStr(6); end;
procedure TCalculator2.BitBtn20Click(Sender: TObject); begin Edit1.SelText:=FloatToStr(7); end;
procedure TCalculator2.BitBtn16Click(Sender:
TObject); begin Edit1.SelText:=FloatToStr(8); end;
procedure TCalculator2.BitBtn12Click(Sender: TObject); begin Edit1.SelText:=FloatToStr(9); end;
procedure TCalculator2.BitBtn17Click(Sender: TObject); begin Edit1.SelText:=FloatToStr(0); end;
procedure TCalculator2.BitBtn13Click(Sender: TObject); begin Edit1.SelText:=chr(44); end;
procedure TCalculator2.BitBtn9Click(Sender: TObject);
begin St:=EDit1.Text; Sst:=#45; Insert(Sst,St,0); Edit1.Text:=St; end;
procedure TCalculator2.BitBtn21Click(Sender: TObject); begin Edit1.Text:='0';A:=0;B:=0;C:=0;F:=0; Edit1.SelectAll; Edit1.SetFocus; end;
procedure TCalculator2.BitBtn23Click(Sender: TObject); var q:integer; St:String; begin St:=EDit1.Text; q:=Length(Edit1.Text); Delete(St,q,1); Edit1.Text:=St; end;
procedure TCalculator2.BitBtn5Click(Sender:
TObject); begin if F=0 then begin try A:= StrToFloat(Edit1.Text); except ShowMessage('Ошибка ввода числа'); Edit1.SelectAll; Exit; end; F:=1; Edit1.SetFocus; exit; end else begin try B:=StrToFloat(Edit1.Text); except ShowMessage('Ошибка ввода числа'); Edit1.SelectAll; Exit; end; case F of 1: C:=A+B; 2: C:=A-B; 3: C:=A*B; 4: if B=0 then begin Edit1.
Text:='На ноль делить запрещено'; Exit; end else C:=A/B; 5: C:=(B/100)*A; end; A:=C; Edit1.Text:=FloatToStr(C); Edit1.SelectAll; Edit1.SetFocus; F:=1; end; end;
procedure TCalculator2.BitBtn1Click(Sender: TObject); begin try B:=StrToFloat(Edit1.Text); except ShowMessage('Ошибка ввода числа'); Edit1.SelectAll; Exit; end; case F of 1: C:=A+B; 2: C:=A-B; 3: C:=A*B; 4: if B=0 then begin Edit1.Text:='На
ноль делить запрещено'; Exit; end else C:=A/B; 5: C:=(B/100)*A; end; A:=C; Edit1.Text:=FloatToStr(C); Edit1.SelectAll; Edit1.SetFocus; F:=0; end;
procedure TCalculator2.BitBtn22Click(Sender: TObject); begin Edit1.Text:='0'; Edit1.SelectAll; Edit1.SetFocus; end;
procedure TCalculator2.BitBtn6Click(Sender: TObject); begin if F=0 then begin try A:= StrToFloat(Edit1.Text); except ShowMessage('Ошибка ввода числа'); Edit1.SelectAll; Exit; end; F:=2; Edit1.SetFocus;exit; end else begin try B:=StrToFloat(Edit1.Text); except ShowMessage('Ошибка ввода числа'); Edit1.SelectAll; Exit; end; case F of 1: C:=A+B; 2: C:=A-B; 3: C:=A*B; 4: if B=0 then begin Edit1.Text:='На ноль делить запрещено'; Exit; end else C:=A/B; 5: C:=(B/100)*A; end; A:=C; Edit1.Text:=FloatToStr(C);
Edit1.SelectAll; Edit1.SetFocus; F:=2; end; end;
procedure TCalculator2.BitBtn7Click(Sender: TObject); begin if F=0 then begin try A:= StrToFloat(Edit1.Text); except ShowMessage('Ошибка ввода числа'); Edit1.SelectAll; Exit; end; F:=3; Edit1.Setfocus; end else begin try B:=StrToFloat(Edit1.Text); except ShowMessage('Ошибка ввода числа'); Edit
1.SelectAll; Exit; end; case F of 1: C:=A+B; 2: C:=A-B; 3: C:=A*B; 4: if B=0 then begin Edit1.Text:=&
#39;На ноль делить запрещено'; Exit; end else C:=A/B; 5: C:=(B/100)*A; end; A:=C; Edit1.Text:=FloatToStr(C); Edit1.SelectAll; Edit1.SetFocus; F:=3; end; end;
procedure TCalculator2.BitBtn8Click(Sender: TObject); begin if F=0 then begin try A:= StrToFloat(Edit1.Text); except ShowMessage('Ошибка ввода числа'); Edit1.SelectAll; Exit; end; F:=4; Edit1.SetFocus; end else begin try B:=StrToFloat(Edit1.Text);
except ShowMessage('Ошибка ввода числа'); Edit1.SelectAll; Exit; end; case F of 1: C:=A+B; 2: C:=A-B; 3: C:=A*B; 4: if B=0 then begin Edit1.Text:='На ноль делить запрещено'; Exit; end else C:=A/B; 5: C:=(B/100)*A; end; A:=C; Edit1.Text:=FloatToStr(C); Edit1.SelectAll; Edit1.SetFocus; F:=4; end; end;
procedure TCalculator2.BitBtn4Click(Sender: TObject); be
gin try A:= StrToFloat(Edit1.Text); except ShowMessage('Ошибка ввода числа'); Edit1.SelectAll; Exit; end; if A<0 then begin Edit1.Text:='Невозможно вычислить';Exit;end else C:=sqrt(A); Edit1.Text:=FloatToStr(C); Edit1.Setfocus; end;
procedure TCalculator2.BitBtn30Click(Sender: TObject); begin Edit3.Text:= FloatToStr(StrToFloat(Edit4.Text) / StrToFloat(Edit2.Text)); end;
procedure TCalculator2.BitBtn26Click(Sender: TObject); begin Edit1.Text:=FloatToStr(D); end;
procedure TCalculator2.BitBtn27Click(Sender: TObject); begin D:=0; end;
procedure TCalculator2.BitBtn28Click(Sender: TObject); begin Application.Terminate; end;
procedure TCalculator2.BitBtn29Click(Sender: TObject); begin Edit4.Text:= FloatToStr(StrToFloat(Edit2.Text) *
StrToFloat(Edit3.Text)); end;
procedure TCalculator2.Edit1KeyPress(Sender: TObject; var Key: Char); begin case Key of '0'..'9': ; // цифра #8 : ; // клавиша <Back Space> #44:;// клавиша , #43:begin Key:=chr(0); if F=0 then begin try A:= StrToFloat(Edit1.Text); except ShowMessage('Ошибка ввода числа'); Edit1.SelectAll; Exit; end; F:=1; Edit1.Setfocus; Edit1.SelectAll; end else begin
try B:=StrToFloat(Edit1.Text); except ShowMessage('Ошибка ввода числа'); Edit1.SelectAll; Exit; end; case F of 1: C:=A+B; 2: C:=A-B; 3: C:=A*B; 4: if B=0 then begin Edit1.Text:='На ноль делить запрещено'; Exit; end else C:=A/B; 5: C:=(B/100)*A; end; A:=C; Edit1.Text:=FloatToStr(C); Edit1.SelectAll; Edit1.SetFocus; F:=1; end; end; #13:begin Key:=chr(0); try B:=St
rToFloat(Edit1.Text); except ShowMessage('Ошибка ввода числа'); Edit1.SelectAll; Exit; end; case F of 1
: C:=A+B; 2: C:=A-B; 3: C:=A*B; 4: if B=0 then begin Edit1.Text:='На ноль делить запрещено'; Exit; end else C:=A/B; 5: C:=(B/100)*A; end; Edit1.Text:=FloatToStr(C); Edit1.SetFocus; Edit1.SelectAll; F:=0; end; #45:begin Key:=chr(0); if F=0 then begin try A:= StrToFloat(Edit1.Text); except ShowMessage('Ошибка ввода числа'); Edit1.SelectAll; Exit; end; F:=2; Edit1.Setfocus; Edit1.SelectAll; end
else begin try B:=StrToFloat(Edit1.Text); except ShowMessage('Ошибка ввода числа'); Edit1.SelectAll; Exit; end; case F of 1: C:=A+B; 2: C:=A-B; 3: C:=A*B; 4: if B=0 then begin Edit1.Text:='На ноль делить запрещено'; Exit; end else C:=A/B; 5: C:=(B/100)*A; end; A:=C; Edit1.Text:=FloatToStr(C); Edit1.SelectAll; Edit1.SetFocus; F:=2; end; end; #42: begin Key:=chr(0);
if F=0 then begin try A:= StrToFloat(Edit1.Text); except ShowMessage('Ошибка ввода числа'); Edit1.SelectAll; Exit; end; F:=3; Edit1.Setfocus; Edit1.SelectAll; end else begin try B:=StrToFloat(Edit1.Text); except ShowMessage('Ошибка ввода числа'); Edit1.SelectAll; Exit; end; case F of 1: C:=A+B; 2: C:=A-B; 3: C:=A*B; 4: if B=0 then begin Edit1.Text:='На ноль делить запрещено'; Exit; end
else C:=A/B; 5: C:=(B/100)*A; end; A:=C; Edit1.Text:=FloatToStr(C); Edit1.SelectAll; Edit1.SetFocus; F:=3; end; end; #47:begin Key:=chr(0); if F=0 then begin try A:= StrToFloat(Edit1.Text); except ShowMessage('Ошибка ввода числа'); Edit1.SelectAll; Exit; end; F:=4; Edit1.Setfocus; Edit1.SelectAll; end else begin try B:=StrToFloat(Edit1.Text); except ShowMessage(
'Ошибка ввода числа'); Edit1.SelectAll; Exit; end; case F of 1: C:=A+B; 2: C:=A-B; 3: C:=A*B; 4: if B=0 then begin Edit1.Text:='На ноль делить запрещено'; Exit; end else C:=A/B; 5: C:=(B/100)*A; end; A:=C; Edit1.Text:=FloatToStr(C); Edit1.SelectAll; Edit1.SetFocus; F:=4; end; end; // остальные символы — запрещены else Key :=Chr(0); // символ не отображать end; end;
procedure TCalculator2.Edit2KeyPress(Sender:
TObject; var Key: Char); begin case Key of '0'..'9': ; // цифра #8 : ; // клавиша <Back Space> #44 : ; // клавиша , // остальные символы — запрещены else Key :=Chr(0); // символ не отображать end; end;
procedure TCalculator2.Edit3KeyPress(Sender: TObject; var Key: Char); begin case Key of '0'..'9': ; // цифра #8 : ; // клавиша <Back Space> #44 : ; //
клавиша , // остальные символы — запрещены else Key :=Chr(0); // символ не отображать end; end;
procedure TCalculator2.Edit4KeyPress(Sender: TObject; var Key: Char); begin case Key of '0'..'9': ; // цифра #8 : ; // клавиша <Back Space> #44 : ; // клавиша , // остальные символы — запрещены else Key :=Chr(0); // символ не отображать end; end;
procedure TCalculator2.FormClose(Sender: TObject; var Action: TCloseAction); begin
application.Terminate; end;
end.
Разобраться в программе не составляет труда, сам калькулятор работает так же, как и стандартный калькулятор Майкрософта.
Прикрепленный файл:загрузить »
----- Помогли тебе, помоги и ты.
Ответ отправил: Евгений/Genia007/, Студент
Ответ отправлен: 27.09.2009, 19:57
Оценка ответа: 5 Комментарий к оценке: отлично!!!!!
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 254771
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.