![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 11.01.2009
Сообщений: 102
|
![]()
У меня задание сделать калькулятор с двумя Edit полями для ввода значений, кнопки с цифрами и четыре переключателя TRadioButton для операции (+,-,/,*).
При нажатии одного из переключателя ввод чисел переходит во второе Edit. Помогите разобраться с этим кодом: У меня не получается: 1. Кнопка с запятой, при нажатии на нее у меня запятая появляется в двух Edit полях procedure TForm1.Button11Click(Sender: TObject); begin if RadioButton1.Checked or RadioButton2.Checked or RadioButton3.Checked or RadioButton4.Checked then if Edit2.Text = '0' then begin Edit2.Text := '0,'; f :=1; end; if Pos(',',Edit2.Text) = 0 then Edit2.Text := Edit2.Text + ',' else if Edit1.Text = '0' then begin Edit1.Text := '0,'; f :=1; end; if Pos(',',Edit1.Text) = 0 then Edit1.Text := Edit1.Text + ','; end; 2. Кнопка "0", не знаю как задать условия для того, чтобы нельзя было перед числом ввести несколько нулей: procedure TForm1.Button10Click(Sender: TObject); begin if RadioButton1.Checked or RadioButton2.Checked or RadioButton3.Checked or RadioButton4.Checked then if f=0 then begin Edit2.Text := '0'; f :=1; end else Edit2.Text := Edit2.Text + '0' else if f=0 then begin Edit1.Text := '0'; f :=1; end else Edit1.Text := Edit1.Text +'0'; end; Заранее большое СПАСИБО! |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
![]()
Edit2.Text := Edit2.Text + ','
здесь видимо надо поставить end else if Edit1.Text = '0' then |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 11.01.2009
Сообщений: 102
|
![]()
выводит ошибку, если вставить end
вот код первой кнопки: // кнопка 1 procedure TForm1.Button1Click(Sender: TObject); begin if RadioButton1.Checked or RadioButton2.Checked or RadioButton3.Checked or RadioButton4.Checked then if f=0 then begin Edit2.Text := '1'; f :=1; end else Edit2.Text := Edit2.Text + '1' else if f=0 then begin Edit1.Text := '1'; f :=1; end else Edit1.Text := Edit1.Text +'1'; end; тут все работает, а с запятой почему-то проблемы? |
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 28.09.2008
Сообщений: 344
|
![]()
Хорошо бы код посмотреть весь.
Немного не понял зачем два Editа? и Цитата:
|
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 11.01.2009
Сообщений: 102
|
![]()
задача в контрольной такая, ввод первого числа в Edit1, ввод второго числа в Edit2, вывод в Label.
вот весь код: unit Unit1; interface type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Button8: TButton; Button9: TButton; Button10: TButton; GroupBox1: TGroupBox; RadioButton1: TRadioButton; RadioButton2: TRadioButton; RadioButton3: TRadioButton; RadioButton4: TRadioButton; Edit1: TEdit; Edit2: TEdit; Button11: TButton; Button12: TButton; Label1: TLabel; Label2: TLabel; Button13: TButton; MainMenu1: TMainMenu; File1: TMenuItem; Exit1: TMenuItem; About1: TMenuItem; XPManifest1: TXPManifest; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; procedure RadioButton1Click(Sender: TObject); procedure RadioButton2Click(Sender: TObject); procedure RadioButton3Click(Sender: TObject); procedure RadioButton4Click(Sender: TObject); procedure Button12Click(Sender: TObject); procedure Button13Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Button10Click(Sender: TObject); procedure Button11Click(Sender: TObject); procedure Exit1Click(Sender: TObject); procedure About1Click(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure Edit2KeyPress(Sender: TObject; var Key: Char); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Unit2; {$R *.dfm} var x,y,z: real; mode: integer; f: integer; //кнопка + procedure TForm1.RadioButton1Click(Sender: TObject); begin mode:=1; end; //кнопка - procedure TForm1.RadioButton2Click(Sender: TObject); begin mode:=2; end; //кнопка * procedure TForm1.RadioButton3Click(Sender: TObject); begin mode:=3; end; //кнопка / procedure TForm1.RadioButton4Click(Sender: TObject); begin mode:=4; end; // кнопка = procedure TForm1.Button12Click(Sender: TObject); begin x:=StrToFloat(Edit1.Text); y:=StrToFloat(Edit2.Text); case mode of 1:begin if (x<>0) and (y<>0) then begin z:=x+y; Label2.Caption:=FloatToStr(z); end else ShowMessage('Не введено одно из значении'); exit; end; 2:begin if (x<>0) and (y<>0) then begin z:=x-y; Label2.Caption:=FloatToStr(z); end else ShowMessage('Не введено одно из значении'); exit; end; 3:begin if (x<>0) and (y<>0) then begin z:=x*y; Label2.Caption:=FloatToStr(z); end else ShowMessage('Не введено одно из значении'); exit; end; 4:begin if (y <>0) then begin z:=x/y; Label2.Caption:=FloatToStr(z); end else ShowMessage('На ноль делить нельзя'); exit; end; end; end; procedure TForm1.Button13Click(Sender: TObject); begin Edit1.Text:=''; Edit2.Text:=''; Label2.Caption:=''; RadioButton1.Checked:=false; RadioButton2.Checked:=false; RadioButton3.Checked:=false; RadioButton4.Checked:=false; end; // кнопка 1 procedure TForm1.Button1Click(Sender: TObject); begin if RadioButton1.Checked or RadioButton2.Checked or RadioButton3.Checked or RadioButton4.Checked then if f=0 then begin Edit2.Text := '1'; f :=1; end else Edit2.Text := Edit2.Text + '1' else if f=0 then begin Edit1.Text := '1'; f :=1; end else Edit1.Text := Edit1.Text +'1'; end; // кнопка 2-9,0 аналогичные первой //кнопка , procedure TForm1.Button11Click(Sender: TObject); begin if RadioButton1.Checked or RadioButton2.Checked or RadioButton3.Checked or RadioButton4.Checked then if Edit2.Text = '0' then begin Edit2.Text := '0,'; f :=1; end; if Pos(',',Edit2.Text) = 0 then Edit2.Text := Edit2.Text + ',' else if Edit1.Text = '0' then begin Edit1.Text := '0,'; f :=1; end; if Pos(',',Edit1.Text) = 0 then Edit1.Text := Edit1.Text + ','; end; procedure TForm1.Exit1Click(Sender: TObject); begin Close; end; procedure TForm1.About1Click(Sender: TObject); begin Form2.Visible := true; end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin case Key of '0'..'9',#8:; else Key :=Chr(0); end; end; procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); begin case Key of '0'..'9',#8:; else Key :=Chr(0); end; end; end. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 11.01.2009
Сообщений: 102
|
![]()
выложил исходник
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите с калькулятором | vishnya454 | Помощь студентам | 8 | 07.01.2009 10:35 |
Помогите с калькулятором. | Sanch | Помощь студентам | 1 | 24.09.2008 06:42 |
ГОРИТ ДИПЛОМ!!!! пожалуйста помогите разобраться с программой | alexs2141 | Фриланс | 6 | 03.06.2008 20:30 |
Пожалуйста помогите разобраться) | Atij1 | Общие вопросы C/C++ | 4 | 13.04.2008 20:32 |