
Calculadora
Delphi
Publicado el 11 de Noviembre del 2009 por Dario
21.076 visualizaciones desde el 11 de Noviembre del 2009
Calculadora que incorpora unas pequeñas funciones matemáticas que trabajan de forma independiente a los cálculos comunes.
Desarrollada en Delphi 7.
Desarrollada en Delphi 7.
Comentarios sobre la versión: Versión 1 (6)
unit calculadora;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
FMX.Objects, FMX.Controls.Presentation, FMX.Edit, FMX.Layouts, FMX.Memo;
type
TForm1 = class(TForm)
B0: TButton;
B3: TButton;
B1: TButton;
B2: TButton;
BMulti: TButton;
B6: TButton;
B4: TButton;
B5: TButton;
BDicion: TButton;
B7: TButton;
B8: TButton;
B9: TButton;
BIgual: TButton;
BSuma: TButton;
BBorrar: TButton;
BCuadrado: TButton;
BRaiz: TButton;
BPorciento: TButton;
BPunto: TButton;
BResta: TButton;
Display: TLabel;
Display2: TLabel;
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 BPuntoClick(Sender: TObject);
procedure BBorrarClick(Sender: TObject);
procedure BSumaClick(Sender: TObject);
procedure BIgualClick(Sender: TObject);
procedure BRestaClick(Sender: TObject);
procedure BMultiClick(Sender: TObject);
procedure BDicionClick(Sender: TObject);
procedure BCuadradoClick(Sender: TObject);
procedure BRaizClick(Sender: TObject);
procedure BPorcientoClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
op : Char;
acumulador : double;
acumulador2 : double;
implementation
{$R *.fmx}
{$R *.SmXhdpiPh.fmx ANDROID}
{$R *.LgXhdpiPh.fmx ANDROID}
{$R *.LgXhdpiTb.fmx ANDROID}
{$R *.NmXhdpiPh.fmx ANDROID}
procedure TForm1.B0Click(Sender: TObject);
begin
Display.Text := Display.Text + '0';
end;
procedure TForm1.B1Click(Sender: TObject);
begin
Display.Text := Display.Text + '1';
end;
procedure TForm1.B2Click(Sender: TObject);
begin
Display.Text := Display.Text + '2';
end;
procedure TForm1.B3Click(Sender: TObject);
begin
Display.Text := Display.Text + '3';
end;
procedure TForm1.B4Click(Sender: TObject);
begin
Display.Text := Display.Text + '4';
end;
procedure TForm1.B5Click(Sender: TObject);
begin
Display.Text := Display.Text + '5';
end;
procedure TForm1.B6Click(Sender: TObject);
begin
Display.Text := Display.Text + '6';
end;
procedure TForm1.B7Click(Sender: TObject);
begin
Display.Text := Display.Text + '7';
end;
procedure TForm1.B8Click(Sender: TObject);
begin
Display.Text := Display.Text + '8';
end;
procedure TForm1.B9Click(Sender: TObject);
begin
Display.Text := Display.Text + '9';
end;
procedure TForm1.BBorrarClick(Sender: TObject);
begin
Display.Text := copy (Display.Text, 1, length (Display.Text) -1);
Display2.Text := '';
acumulador := 0;
acumulador2 := 0;
BPunto.Enabled:= true;
end;
procedure TForm1.BCuadradoClick(Sender: TObject);
var
error: Integer;
acumulador: real;
begin
Val(Display.text,acumulador,error);
if error = 0 then
Display.Text := floattostr(sqr(acumulador))
else
Display.Text := '';
Display.Tag := 0;
end;
procedure TForm1.BDicionClick(Sender: TObject);
begin
op := '/';
acumulador2 := strtofloat (Display.Text);
acumulador := strtofloat (Display.Text);
Display.Text := '';
Display.tag := 0;
BPunto.Enabled:= true;
end;
procedure TForm1.BPorcientoClick(Sender: TObject);
begin
Display.text := FloatToStr(StrToFloat(Display.text) / 100);
end;
procedure TForm1.BIgualClick(Sender: TObject);
begin
if op = '+' then
acumulador := acumulador + strtofloat (Display.Text);
if op = '-' then
acumulador := acumulador - strtofloat (Display.Text);
if op = '*' then
acumulador := acumulador * strtofloat (Display.Text);
if op = '/' then
acumulador := acumulador / strtofloat (Display.Text);
Display2.Text := floattostr(acumulador2)+ op + Display.text;
Display.Text := floattostr (acumulador);
end;
procedure TForm1.BMultiClick(Sender: TObject);
begin
op := '*';
acumulador2 := strtofloat (Display.Text);
acumulador := strtofloat (Display.Text);
Display.Text := '';
Display.tag := 0;
BPunto.Enabled:= true;
end;
procedure TForm1.BPuntoClick(Sender: TObject);
begin
Display.Text := Display.Text + '.';
BPunto.Enabled:= false;
end;
procedure TForm1.BRaizClick(Sender: TObject);
var
error: Integer;
acumulador: real;
begin
Val(Display.text,acumulador,error);
if error = 0 then
Display.Text := floattostr(sqrt(acumulador))
else
Display.Text := '';
Display.Tag := 0;
end;
procedure TForm1.BRestaClick(Sender: TObject);
begin
op := '-';
acumulador2 := strtofloat (Display.Text);
acumulador := strtofloat (Display.Text);
Display.Text := '';
Display.tag := 0;
BPunto.Enabled:= true;
end;
procedure TForm1.BSumaClick(Sender: TObject);
begin
op := '+';
acumulador2 := strtofloat (Display.Text);
acumulador := strtofloat (Display.Text);
Display.Text := '';
Display.tag := 0;
BPunto.Enabled:= true;
end;
end.