![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 23.06.2011
Сообщений: 15
|
![]()
Есть калькулятор:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus, XPMan, ExtCtrls, jpeg, Buttons,Math, ImgList,MMSystem,clipbrd; type TCalc = class(TForm) btn1: TButton; btn2: TButton; btn3: TButton; btn4: TButton; btn5: TButton; btn6: TButton; btn7: TButton; btn8: TButton; btn9: TButton; btnzero: TButton; btnzap: TButton; btnravno: TButton; btnC: TButton; btnDelenie: TButton; btnumnoz: TButton; btnminus: TButton; btnplus: TButton; btn10: TBitBtn; btn11: TButton; btn12: TBitBtn; btn14: TBitBtn; btn15: TBitBtn; btn16: TBitBtn; btn17: TBitBtn; btn18: TBitBtn; btn19: TBitBtn; btn20: TBitBtn; StaticText1: TStaticText; img1: TImage; mm1: TMainMenu; N1: TMenuItem; g1: TMenuItem; N2: TMenuItem; procedure N1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShortCut(var Msg: TWMKey; var Handled: Boolean); procedure btn3Click(Sender: TObject); procedure btnCClick(Sender: TObject); procedure btnplusClick(Sender: TObject); procedure btn11Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure g1Click(Sender: TObject); procedure btnravnoClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Calc: TCalc; x, y, z : real; n: char; implementation uses Unit2, Unit3; {$R *.dfm} procedure TCalc.N1Click(Sender: TObject); begin MessageDlg(' Программа Калькулятор' +#13+ ' Version 2.0, Freeware' +#13+ '======================' +#13+ ' '+#$A9+'2011', MtInformation, [mbOK],0) ; end; procedure TCalc.N2Click(Sender: TObject); begin statictext1.Caption:=clipboard.aste xt; end; procedure Btn1Click(Sender: TObject); begin end; procedure TCalc.FormCreate(Sender: TObject); begin Calc.Constraints.MinHeight := 500; Calc.Constraints.MinWidth := 380; calc.Left := (Screen.Width div 2) - (Calc.Width div 2); calc.Top := (Screen.Height div 2) - (calc.Height div 2); end; procedure TCalc.FormShortCut(var Msg: TWMKey; var Handled: Boolean);{Здесь ввод чисел с клавиатуры} var d: Byte; begin case Msg.CharCode of 8: case Length(StaticText1.Caption) of 61,43:x:=strtofloat(StaticText1.Cap tion); {плюс} 13:y:=strtofloat(StaticText1.Captio n);{enter} {8 -backspace} 0: ; 1:StaticText1.Caption:='0'; else StaticText1.Caption:=Copy(StaticTex t1.Caption,1,Length(StaticText1.Cap tion)-1); end; 46: StaticText1.Caption:='0'; {.} 27: Close; {Esc} 110, 188, 191: if Pos(',',StaticText1.Caption)=0 then StaticText1.Caption:=StaticText1.Ca ption+','; 48..57,96..105: {ввод 0..9 на цифровой и дополнительной клавиатуре} begin if Msg.CharCode>95 then d:=48 else d:=0; if StaticText1.Caption='0' then StaticText1.Caption:=chr(Msg.CharCo de-d) else StaticText1.Caption:=StaticText1.Ca ption+'1'; end; end; Handled:=True; end; procedure TCalc.g1Click(Sender: TObject); begin clipboard.settextbuf(pchar(staticte xt1.Caption)); end; procedure TCalc.btn3Click(Sender: TObject); begin if StaticText1.Caption='0' then StaticText1.Caption:=(Sender as TButton).Caption else StaticText1.Caption:= StaticText1.Caption+(Sender as TButton).Caption; end; procedure TCalc.btnCClick(Sender: TObject); begin StaticText1.Caption:='0'; end; procedure TCalc.btnplusClick(Sender: TObject); {здесь событие нажатия для кнопок плюс, минус, умнож., делен.} var s:tbutton; begin x:=strtofloat(StaticText1.Caption); s:=(sender as tbutton); n:=s.caption[1]; StaticText1.Caption:='0'; end; procedure TCalc.btnravnoClick(Sender: TObject);{здесь должно быть равно} begin y:=strtofloat(StaticText1.Caption); {Как сделать здесь равно?????????????????????????????? ????????} end; procedure TCalc.btn11Click(Sender: TObject); var i: byte; begin X:=strtofloat(StaticText1.Caption); i:=StrToInt(copy((Sender as TButton).Name,3,2)); case i of 11: Y:=Power(x,2); 12: Y:=Sqrt(x); 14: Y:=Sin(x*Pi/180); 15: Y:=Cos(x*Pi/180); 16: Y:=Tan(x*Pi/180); 17: Y:=ArcCos(x*Pi/180); 18: Y:=ArcSin(x*Pi/180); 19: Y:=ArcTan(x*Pi/180); 20: Y:=Ln(x); end; StaticText1.Caption:=floattostr(Y); end; end. Вопросы: 1)Как сделать равно в событиях нажатия кнопок 2)как сделать равно с ввода с клавиатуры Заранее огромное спасибо! |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ошибки в калькуляторе | -=Andriushka=- | Помощь студентам | 3 | 05.03.2011 18:37 |
проверка в калькуляторе | 4UDaK | Помощь студентам | 2 | 27.04.2010 19:13 |
mod в калькуляторе | pinch000 | Общие вопросы C/C++ | 1 | 08.11.2009 02:44 |
Формат числа в калькуляторе | Mint86 | Microsoft Office Excel | 8 | 25.07.2008 11:49 |
как написать в калькуляторе... | Илюха | Общие вопросы Delphi | 6 | 02.11.2007 17:06 |