|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.02.2010, 20:32 | #1 |
Пользователь
Регистрация: 23.09.2009
Сообщений: 48
|
Калькулятор
Привет!Я вот пишу сейчас инженерный калькулятор на Делфи 7!
Вы не подскажете,как мне запрограммировать клавишу "+/-"? |
17.02.2010, 20:35 | #2 |
Форумчанин
Регистрация: 16.02.2010
Сообщений: 316
|
Код:
|
17.02.2010, 20:43 | #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; Как мне под него подогнать кнопку "+/-"? |
|
17.02.2010, 20:48 | #4 |
Форумчанин
Регистрация: 16.02.2010
Сообщений: 316
|
Код:
|
17.02.2010, 20:58 | #5 |
Пользователь
Регистрация: 23.09.2009
Сообщений: 48
|
Спасибо,заработало!С меня плюс!
|
19.02.2010, 21:39 | #6 |
Пользователь
Регистрация: 23.09.2009
Сообщений: 48
|
А не подскажите ли,как мне реализовать логарифм натуральный?(Ln)?
Мне осталось только его реализовать и проверки там всякие! Проверки вроде додумался как написать,а вот логарифм-ну никак! |
20.02.2010, 19:06 | #7 |
Форумчанин
Регистрация: 16.02.2010
Сообщений: 316
|
Код:
|
21.02.2010, 13:44 | #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 может чето я неправильно делаю? |
21.02.2010, 14:11 | #9 | |
Участник клуба
Регистрация: 11.01.2009
Сообщений: 1,917
|
Цитата:
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
|
|
21.02.2010, 14:48 | #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 |