unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
Tfrm_calc = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
btn7: TButton;
btn4: TButton;
btn1: TButton;
btn8: TButton;
btn9: TButton;
btn5: TButton;
btn6: TButton;
btn2: TButton;
btn3: TButton;
btn0: TButton;
btn_igual: TButton;
btn_subtracao: TButton;
btn_soma: TButton;
btn_divisao: TButton;
btn_multiplicacao: TButton;
edt_display: TEdit;
btn_ce: TButton;
btn_virgula: TButton;
btn_off: TButton;
procedure btn7Click(Sender: TObject);
procedure btn8Click(Sender: TObject);
procedure btn9Click(Sender: TObject);
procedure btn4Click(Sender: TObject);
procedure btn5Click(Sender: TObject);
procedure btn6Click(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
procedure btn3Click(Sender: TObject);
procedure btn0Click(Sender: TObject);
procedure btn_igualClick(Sender: TObject);
procedure btn_somaClick(Sender: TObject);
procedure btn_subtracaoClick(Sender: TObject);
procedure btn_multiplicacaoClick(Sender: TObject);
procedure btn_divisaoClick(Sender: TObject);
procedure btn_offClick(Sender: TObject);
procedure btn_ceClick(Sender: TObject);
procedure btn_virgulaClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frm_calc: Tfrm_calc;
var n1,n2,total:real;
operador:string;
implementation
{$R *.dfm}
procedure Tfrm_calc.btn0Click(Sender: TObject);
begin
edt_display.Text:='0';
end;
procedure Tfrm_calc.btn_igualClick(Sender: TObject);
begin
n2 := strTOfloat (edt_display.Text);
if operador='+'then
begin
total := n1 + n2;
edt_display.Text:=floatTOstr(total);
end;
if operador='-'then
begin
total := n1 - n2;
edt_display.Text:=floatTOstr(total);
end;
if operador='x'then
begin
total := n1 * n2;
edt_display.Text:=floatTOstr(total);
end;
if operador='/'then
begin
total := n1 / n2;
edt_display.Text:=floatTOstr(total);
end;
end;
procedure Tfrm_calc.btn_ceClick(Sender: TObject);
begin
edt_display.Text:='0';
n1:=0;
n2:=0;
end;
procedure Tfrm_calc.btn_subtracaoClick(Sender: TObject);
begin
n1:=strTOfloat(edt_display.Text);
operador:='-';
edt_display.Clear;
end;
procedure Tfrm_calc.btn_somaClick(Sender: TObject);
begin
n1:=strTOfloat(edt_display.Text);
operador:='+';
edt_display.Clear;
end;
procedure Tfrm_calc.btn_divisaoClick(Sender: TObject);
begin
n1:=strTOfloat(edt_display.Text);
operador:='/';
edt_display.Clear;
end;
procedure Tfrm_calc.btn_multiplicacaoClick(Sender: TObject);
begin
n1:=strTOfloat(edt_display.Text);
operador:='x';
edt_display.Clear;
end;
procedure Tfrm_calc.btn_virgulaClick(Sender: TObject);
begin
if edt_display.Text = '' then
begin
edt_display.Clear;
end;
if edt_display.Text <> '' then
begin
edt_display.Text:=edt_display.Text+',';
end;
end;
procedure Tfrm_calc.btn_offClick(Sender: TObject);
begin
close;
end;
procedure Tfrm_calc.btn7Click(Sender: TObject);
begin
if edt_display.Text <> '' then
begin
edt_display.Text:=edt_display.Text+'7';
edt_display.Text;
end;
if edt_display.Text = '07' then
begin
edt_display.Clear;
edt_display.Text:='7';
end;
if edt_display.Text = '' then
begin
edt_display.Text:='7';
end;
end;
procedure Tfrm_calc.btn8Click(Sender: TObject);
begin
if edt_display.Text <> '' then
begin
edt_display.Text:=edt_display.Text+'8';
edt_display.Text;
end;
if edt_display.Text = '08' then
begin
edt_display.Clear;
edt_display.Text:='8';
end;
if edt_display.Text = '' then
begin
edt_display.Text:='8';
end;
end;
procedure Tfrm_calc.btn9Click(Sender: TObject);
begin
if edt_display.Text <> '' then
begin
edt_display.Text:=edt_display.Text+'9';
edt_display.Text;
end;
if edt_display.Text = '09' then
begin
edt_display.Clear;
edt_display.Text:='9';
end;
if edt_display.Text = '' then
begin
edt_display.Text:='9';
end;
end;
procedure Tfrm_calc.btn4Click(Sender: TObject);
begin
if edt_display.Text <> '' then
begin
edt_display.Text:=edt_display.Text+'4';
edt_display.Text;
end;
if edt_display.Text = '04' then
begin
edt_display.Clear;
edt_display.Text:='4';
end;
if edt_display.Text = '' then
begin
edt_display.Text:='4';
end;
end;
procedure Tfrm_calc.btn5Click(Sender: TObject);
begin
if edt_display.Text <> '' then
begin
edt_display.Text:=edt_display.Text+'5';
edt_display.Text;
end;
if edt_display.Text = '05' then
begin
edt_display.Clear;
edt_display.Text:='5';
end;
if edt_display.Text = '' then
begin
edt_display.Text:='5';
end;
end;
procedure Tfrm_calc.btn6Click(Sender: TObject);
begin
if edt_display.Text <> '' then
begin
edt_display.Text:=edt_display.Text+'6';
edt_display.Text;
end;
if edt_display.Text = '06' then
begin
edt_display.Clear;
edt_display.Text:='6';
end;
if edt_display.Text = '' then
begin
edt_display.Text:='6';
end;
end;
procedure Tfrm_calc.btn2Click(Sender: TObject);
begin
if edt_display.Text <> '' then
begin
edt_display.Text:=edt_display.Text+'2';
edt_display.Text;
end;
if edt_display.Text = '02' then
begin
edt_display.Clear;
edt_display.Text:='2';
end;
if edt_display.Text = '' then
begin
edt_display.Text:='2';
end;
end;
procedure Tfrm_calc.btn1Click(Sender: TObject);
begin
if edt_display.Text <> '' then
begin
edt_display.Text:=edt_display.Text+'1';
edt_display.Text;
end;
if edt_display.Text = '01' then
begin
edt_display.Clear;
edt_display.Text:='1';
end;
if edt_display.Text = '' then
begin
edt_display.Text:='1';
end;
end;
procedure Tfrm_calc.btn3Click(Sender: TObject);
begin
if edt_display.Text <> '' then
begin
edt_display.Text:=edt_display.Text+'3';
edt_display.Text;
end;
if edt_display.Text = '03' then
begin
edt_display.Clear;
edt_display.Text:='3';
end;
if edt_display.Text = '' then
begin
edt_display.Text:='3';
end;
end;
end.
Entendo que esta aplicação básica tem suas limitações e falhas/bugs.
Porem se entenderem este código acima terão condições perfeitas para aperfeiçoar o programa.
Boa Prática e até +...
eu vo faze uma dessa e mostra pro meu pai :D
ResponderExcluir