procedure TForm1.Button7Click(Sender: TObject); 
 begin 
 edit1.Text:=edit1.Text+'1'; {вводим в поле само поле и приплюсовываем к концу этого поля 1} 
 end; 
Так стоит проделать со всеми числами и запятой. Итак, после проделанного стоит задуматься над сохранением чисел и действий над ними. Создаём в разделе Unit четыре переменные (тем кто не может найти: там написано: Var Form:Tform1;) Вот под этим сразу-же описываем 4 переменные:

var Form1: TForm1; 
 c:char; {для сохранения действия над числами} 
a,b,d:real; {переменные в которых будут хранится значения} 
Пришло время для считывания первой переменной, естественно её нужно считать до того как нажмётся один из арифметических знаков, на событие OnClick, начнём например со знака "+", пишем:

 procedure TForm1.Button13Click(Sender: TObject); 
 begin 
{проверяем введено ли число,
если нет - никаких действий не будет выполнено пока оно не будет введено} 
 if edit1.Text<>'' then 
 a:=strtofloat(edit1.Text); {считываем в переменную первое число} 
c:='+'; {присваиваем чаровской переменной знак "+" дабы знать какую операцию нам делать} 
edit1.Clear; {Очистка экрана после считывания первого числа} 
end; 
Повторим эту процедуру с остальными арифметическими действиями. На событие OnClick кнопки "С" нужно вписать следующее:

procedure TForm1.Button19Click(Sender: TObject); 
 begin 
 Edit1.Clear; {Позволяет очистить поле ввода по требованию пользователя} 
end; 
На событие OnClick кнопки выхода нужно вписать:

procedure TForm1.Button20Click(Sender: TObject); 
 begin 
 close(); 
 end; 
Осталось считать вторую переменную: На событие OnClick знака "=" пишем:

procedure TForm1.Button12Click(Sender: TObject); 
 var q,w:integer; {Вспомогательные переменные в процедуре} 
begin 
 if edit1.Text<>'' then b:=strtofloat(edit1.Text); {Считываем переменную} 
case c of 
 '+':d:=a+b; 
 '-':d:=a-b; 
 '*':d:=a*b; 
 '/':d:=a/b; 
 'm':begin q:=round(a);w:=round(b);d:=q mod w; 
 'd':begin q:=round(a);w:=round(b);d:=q div w; 
 '^':begin 
 d:=a;w:=round(b); 
 for q:=1 to w-1 do 
 d:=d*a; 
 end; 
 end; 
 edit1.Text:=floattostr(d); {вывод} 
end;

Автор публикации: Berestovskiy


2011-10-14 • Просмотров [ 1758 ]