![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 23.09.2009
Сообщений: 48
|
![]()
Привет!Я вот пишу сейчас инженерный калькулятор на Делфи 7!
Вы не подскажете,как мне запрограммировать клавишу "+/-"? |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 16.02.2010
Сообщений: 316
|
![]() Код:
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 23.09.2009
Сообщений: 48
|
![]() Цитата:
Вот мой код калькулятора! unit Dcal; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TCalc = class(TForm) Pole: TEdit; B7: TButton; B8: TButton; B5: TButton; Plus: TButton; Bb: TButton; Bplus: TButton; B0: TButton; B1: TButton; B2: TButton; B3: TButton; B6: TButton; B9: TButton; B4: TButton; Delit: TButton; Ravno: TButton; Umn: TButton; Minus: TButton; Ln: TButton; Button1: TButton; Back: TButton; procedure B0Click(Sender: TObject); procedure B1Click(Sender: TObject); procedure B2Click(Sender: TObject); procedure B3Click(Sender: TObject); procedure B4Click(Sender: TObject); procedure B5Click(Sender: TObject); procedure B6Click(Sender: TObject); procedure B7Click(Sender: TObject); procedure B8Click(Sender: TObject); procedure B9Click(Sender: TObject); procedure BbClick(Sender: TObject); procedure Button1Click(Sender: TObject); procedure PlusClick(Sender: TObject); procedure MinusClick(Sender: TObject); procedure UmnClick(Sender: TObject); procedure DelitClick(Sender: TObject); procedure RavnoClick(Sender: TObject); procedure BplusClick(Sender: TObject); procedure BminusClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Calc: TCalc; d,v,o:real; mode:integer; implementation {$R *.dfm} procedure TCalc.B0Click(Sender: TObject); begin pole.Text:=pole.Text+'0'; end; procedure TCalc.B1Click(Sender: TObject); begin pole.Text:=pole.Text+'1'; end; procedure TCalc.B2Click(Sender: TObject); begin pole.Text:=pole.Text+'2'; end; procedure TCalc.B3Click(Sender: TObject); begin pole.Text:=pole.Text+'3'; end; procedure TCalc.B4Click(Sender: TObject); begin pole.Text:=pole.Text+'4'; end; procedure TCalc.B5Click(Sender: TObject); begin pole.Text:=pole.Text+'5'; end; procedure TCalc.B6Click(Sender: TObject); begin pole.Text:=pole.Text+'6'; end; procedure TCalc.B7Click(Sender: TObject); begin pole.Text:=pole.Text+'7'; end; procedure TCalc.B8Click(Sender: TObject); begin pole.Text:=pole.Text+'8'; end; procedure TCalc.B9Click(Sender: TObject); begin pole.Text:=pole.Text+'9'; end; procedure TCalc.BbClick(Sender: TObject); begin pole.Text:=pole.Text+','; end; procedure TCalc.Button1Click(Sender: TObject); begin pole.Text:='0'; end; procedure TCalc.PlusClick(Sender: TObject); begin v:=strtofloat(pole.Text); mode:=1; pole.Text:=''; end; procedure TCalc.MinusClick(Sender: TObject); begin v:=strtofloat(pole.Text); mode:=2; pole.Text:=''; end; procedure TCalc.UmnClick(Sender: TObject); begin v:=strtofloat(pole.Text); mode:=4; pole.Text:=''; end; procedure TCalc.DelitClick(Sender: TObject); begin v:=strtofloat(pole.Text); mode:=3; pole.Text:=''; end; procedure TCalc.RavnoClick(Sender: TObject); begin case mode of 1:begin o:=strtofloat(pole.Text); d:=v+o; pole.Text:=floattostr(d); end; 2:begin o:=StrToFloat(pole.Text); d:=v-o; Pole.Text:=FloatToStr(d); end; 3:begin o:=StrToFloat(pole.Text); d:=v/o; Pole.Text:=FloatToStr(d); end; 4:begin o:=StrToFloat(pole.Text); d:=v*o; pole.text:=FloatToStr(d); end; end; end; procedure TCalc.BplusClick(Sender: TObject); begin if pole.Text[1]='-' then pole.Text[1]:='' else pole.Text:='-'+pole.Text; end; Как мне под него подогнать кнопку "+/-"? |
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 16.02.2010
Сообщений: 316
|
![]() Код:
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 23.09.2009
Сообщений: 48
|
![]()
Спасибо,заработало!С меня плюс!
![]() |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 23.09.2009
Сообщений: 48
|
![]()
А не подскажите ли,как мне реализовать логарифм натуральный?(Ln)?
Мне осталось только его реализовать и проверки там всякие! Проверки вроде додумался как написать,а вот логарифм-ну никак! ![]() |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 16.02.2010
Сообщений: 316
|
![]() Код:
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 23.09.2009
Сообщений: 48
|
![]()
Спасибо за код,но выбило ошибки:
[Error] Dcal.pas(139): Missing operator or semicolon [Error] Dcal.pas(139): There is no overloaded version of 'FloatToStr' that can be called with these arguments может чето я неправильно делаю? ![]() |
![]() |
![]() |
![]() |
#9 | |
Участник клуба
Регистрация: 11.01.2009
Сообщений: 1,917
|
![]() Цитата:
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
|
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 23.09.2009
Сообщений: 48
|
![]()
unit Dcal;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TCalc = class(TForm) Pole: TEdit; B7: TButton; B8: TButton; B5: TButton; Plus: TButton; Bb: TButton; Bplus: TButton; B0: TButton; B1: TButton; B2: TButton; B3: TButton; B6: TButton; B9: TButton; B4: TButton; Delit: TButton; Ravno: TButton; Umn: TButton; Minus: TButton; Ln: TButton; Button1: TButton; procedure B0Click(Sender: TObject); procedure B1Click(Sender: TObject); procedure B2Click(Sender: TObject); procedure B3Click(Sender: TObject); procedure B4Click(Sender: TObject); procedure B5Click(Sender: TObject); procedure B6Click(Sender: TObject); procedure B7Click(Sender: TObject); procedure B8Click(Sender: TObject); procedure B9Click(Sender: TObject); procedure BbClick(Sender: TObject); procedure Button1Click(Sender: TObject); procedure PlusClick(Sender: TObject); procedure MinusClick(Sender: TObject); procedure UmnClick(Sender: TObject); procedure DelitClick(Sender: TObject); procedure RavnoClick(Sender: TObject); procedure BplusClick(Sender: TObject); procedure LnClick(Sender: TObject); procedure BibiClick(Sender: TObject); // procedure BminusClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Calc: TCalc; d,v,o:real; mode:integer; implementation {$R *.dfm} procedure TCalc.B0Click(Sender: TObject); begin pole.Text:=pole.Text+'0'; end; procedure TCalc.B1Click(Sender: TObject); begin pole.Text:=pole.Text+'1'; end; procedure TCalc.B2Click(Sender: TObject); begin pole.Text:=pole.Text+'2'; end; procedure TCalc.B3Click(Sender: TObject); begin pole.Text:=pole.Text+'3'; end; procedure TCalc.B4Click(Sender: TObject); begin pole.Text:=pole.Text+'4'; end; procedure TCalc.B5Click(Sender: TObject); begin pole.Text:=pole.Text+'5'; end; procedure TCalc.B6Click(Sender: TObject); begin pole.Text:=pole.Text+'6'; end; procedure TCalc.B7Click(Sender: TObject); begin pole.Text:=pole.Text+'7'; end; procedure TCalc.B8Click(Sender: TObject); begin pole.Text:=pole.Text+'8'; end; procedure TCalc.B9Click(Sender: TObject); begin pole.Text:=pole.Text+'9'; end; procedure TCalc.BbClick(Sender: TObject); begin pole.Text:=pole.Text+','; end; procedure TCalc.Button1Click(Sender: TObject); begin //pole.Text:='0'; pole.Clear; end; procedure TCalc.PlusClick(Sender: TObject); begin v:=strtofloat(pole.Text); mode:=1; pole.Text:=''; end; procedure TCalc.MinusClick(Sender: TObject); begin v:=strtofloat(pole.Text); mode:=2; pole.Text:=''; end; procedure TCalc.UmnClick(Sender: TObject); begin v:=strtofloat(pole.Text); mode:=4; pole.Text:=''; end; procedure TCalc.DelitClick(Sender: TObject); begin v:=strtofloat(pole.Text); mode:=3; pole.Text:=''; end; procedure TCalc.RavnoClick(Sender: TObject); begin case mode of 1:begin o:=strtofloat(pole.Text); d:=v+o; pole.Text:=floattostr(d); end; 2:begin o:=StrToFloat(pole.Text); d:=v-o; Pole.Text:=FloatToStr(d); end; 3:begin o:=StrToFloat(pole.Text); d:=v/o; Pole.Text:=FloatToStr(d); if pole.Text<>'0' then d:=v/o; end; 4:begin o:=StrToFloat(pole.Text); d:=v*o; pole.text:=FloatToStr(d); end; 5:begin pole.text:=floattostr(Ln(strtoFloat (pole.text))); end; end; end; procedure TCalc.BplusClick(Sender: TObject); var s:string; begin s:=pole.Text; if s[1]='-' then begin delete(s,1,1); pole.Text:=s; end else pole.Text:='-'+s; end; procedure TCalc.LnClick(Sender: TObject); begin //v:=strtofloat(pole.Text); mode:=5; pole.Text:=''; end; end. я так делал,потому что по-другому не знал,как можно сделать! |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Калькулятор | BaRSyk174 | Помощь студентам | 4 | 26.01.2010 20:19 |
калькулятор | vetalij | Общие вопросы C/C++ | 3 | 25.01.2010 21:04 |
Калькулятор | slivochny | Общие вопросы C/C++ | 4 | 17.06.2009 20:49 |
Калькулятор | ViNcHeStEr | Помощь студентам | 5 | 23.11.2008 15:39 |
Калькулятор | Димарик | Общие вопросы Delphi | 1 | 04.10.2008 15:52 |