x_under

Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Всем здрасте и с прошедшими праздниками!!! а вот собственно вопрос: пишу калькулятор в дельфах(вроди коды программ дельфи от паскакалей неособо отличаются) ну так вот, пишу я его пишу, и нашел такое место ну невезжаю я вообще в него! а дело вот в чем: процедура обработки нажатия кнопки(button), выполняющая математическое действие деление. Ах да, вот что у меня на форме: два поля едит, одна панель для вывода результата, кнопки для выполнения математических действий, кнопки равно, очистка всего, и кнопка выхода(Close). вот код программы: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) exit: TButton; Edit1: TEdit; Edit2: TEdit; Umnojenie: TButton; Delenie: TButton; Summa: TButton; Raznost: TButton; Panel1: TPanel; Clear: TButton; Ravno: TButton; Kvadrat: TButton; Delenie_na_celo: TButton; Koren_Kvadratniy: TButton; procedure exitClick(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure Edit2KeyPress(Sender: TObject; var Key: Char); procedure ClearClick(Sender: TObject); procedure SummaClick(Sender: TObject); procedure RavnoClick(Sender: TObject); procedure FormActivate(Sender: TObject); procedure RaznostClick(Sender: TObject); procedure UmnojenieClick(Sender: TObject); procedure DelenieClick(Sender: TObject); procedure KvadratClick(Sender: TObject); procedure Delenie_na_celoClick(Sender: TObject); procedure Koren_KvadratniyClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; x,y: real; {peremennie} r: real; {ravno} c: char; t:boolean; implementation {$R *.dfm} procedure TForm1.exitClick(Sender: TObject); begin close; end; procedure TForm1.FormActivate(Sender: TObject); begin edit1.SetFocus; end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (key in ['0'..'9', ',' , '-']) then key:=#0; end; procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); begin if not (key in ['0'..'9' , ',' , '-']) then key:=#0; end; procedure TForm1.ClearClick(Sender: TObject); begin edit1.Clear; edit1.text:='0'; edit2.Clear; edit2.text:='0'; panel1.Caption:=''; edit1.SetFocus; end; {************************************************************************} procedure TForm1.SummaClick(Sender: TObject); begin if edit1.Text=' ' then edit1.Text:=' ' else begin x:=StrToFloat(edit1.Text); c:='+'; t:=true; edit2.SetFocus; end; end; procedure TForm1.RaznostClick(Sender: TObject); begin if edit1.Text=' ' then edit1.Text:=' ' else begin x:=StrToFloat(edit1.Text); c:='-'; t:=true; edit2.SetFocus; end; end; {*************************************************************************} procedure TForm1.UmnojenieClick(Sender: TObject); begin if edit1.Text=' ' then edit1.Text:=' ' else begin x:=StrToFloat(edit1.Text); c:='*'; t:=true; edit2.SetFocus; end; end; procedure TForm1.KvadratClick(Sender: TObject); begin if edit1.Text=' ' then edit1.Text:=' ' else begin x:=StrToFloat(edit1.Text); c:='1'; t:=true; end; end; procedure TForm1.Koren_KvadratniyClick(Sender: TObject); begin if edit1.Text=' ' then edit1.Text:=' ' else begin x:=StrToFloat(edit1.Text); c:='2'; t:=true; end; end; {*************************************************************************} procedure TForm1.DelenieClick(Sender: TObject); begin if edit2.Text<>'0' then {esli ne nol} else begin c:='/'; t:=true; edit2.SetFocus; begin Showmessage('НА НОЛЬ ДЕЛИТЬ НЕЛЬЗЯ!'); edit2.text:='0'; edit2.SetFocus; end; end; end; {*************************************************************************} procedure TForm1.RavnoClick(Sender: TObject); begin y:=StrToFloat(edit2.Text); case c of '+': panel1.Caption:= FloatToStr (x+y); '-': panel1.Caption:= FloatToStr (x-y); '*': panel1.Caption:= FloatToStr (x*y); '/': panel1.Caption:= FloatToStr (x/y); '1': panel1.Caption:= FloatToStr (sqr(x)); {kvadrat} '2': panel1.Caption:= FloatToStr (sqrt(x)); {vkadratniy coren} end; end; procedure TForm1.Delenie_na_celoClick(Sender: TObject); begin // if edit2.Text<>'0' then {esli ne nol} // else // begin // c:=x div y; // t:=true; // edit2.SetFocus; // // begin // Showmessage('НА НОЛЬ ДЕЛИТЬ НЕЛЬЗЯ!'); // edit2.text:='0'; // edit2.SetFocus; // end; // end; end; end. Почему, когда я запускаю этот приложение(F9 или run), вписываю в едит1 первое число, в едит2 второе число, нажимаю на кнопку делить....... и просто накаутизирует мозг!!! В панели пишет результат: 0. ПОЧЕМУ, ЧТО НЕ ТАК!!! КТО НИБУДЬ ПОМОГИТЕ! ААА СОС!!! P.S.простите что я суда написал про дельфи, я просто не нашел, куда этот вопрос можно вписать... Добавлено: А, все, с этой проблемой(неделилось так как надо) уже справился, но помогите мне тогда написать код, который будет выполнять ДЕЛЕНИЕ НАЦЕЛО, И НАХОЖДЕНИЕ ОСТАТКА ОТ ДЕЛЕНИЯ. заранее спасибо.) |