Hola Amigos hoy les traigo un pequeño tutorial de cómo realizar una Calculadora.
Nuestra calculadora tendrá las Operaciones Básicas.
- Sumar
- Restar
- Multiplicar
- Dividir.
Primeramente colocaremos un componente Memo en la forma y algunos botones para que realice las operaciones esta es la parte grafica.
Related Articles
Para comenzar ponemos la propiedad Alignment del Memo a la Derecha (taRightJustify). Y colocamos este código dentro del evento OnCreate de la Forma, para inicializar el memo en 0;
Display.Text:='0';
Display.Tag:=0;
Seguidamente declaramos algunas variables en la parte Privada de nuestra Forma.
private
error: Integer;
aux: real;
Resp: Real;
public
{ Public declarations }
Una Vez concluido este paso pasaremos a declarar algunos procedimientos. Que utilizaremos durante nuestras operaciones.
procedure TForm1.Calculo();
begin
Display.Tag := 0;
Pto.Tag := 0;
Suma.Tag := 1;
Resta.Tag := 1;
Multip.Tag := 1;
Divi.Tag := 1;
end;
Este será utilizado para declarar el valor que tomara cada botón en las operaciones.
Procedure TForm1.Operaciones();
var Error: integer;
begin
Error := 0;
if Suma.Tag = 2 then
Resp := Resp + strtofloat(Display.Text);
if Resta.Tag = 2 then
Resp := Resp - strtofloat(Display.Text);
if Multip.Tag = 2 then
Resp := Resp * strtofloat(Display.Text);
if Divi.Tag = 2 then
If strtofloat(Display.Text) <> 0 then
Resp := Resp / StrToFloat(Display.Text)
else
Error := 1;
// Mostrar en el Display
if Error = 0 then
Display.Text := FloatToStr(Resp)
else
Display.Text := 'Error: División por Cero'
end;
Acá realizamos cada una de las operaciones que contiene nuestra calculadora.
procedure TForm1.Numero(Num: string);
begin
if Display.Tag <> 0 then
Display.Text := Display.Text + Num
else
Display.Text := Num;
Display.Tag := 1;
end;
Este procedimiento se utiliza para colocar los números en el Memo colocado en nuestra forma y queden uno consecutivo del otro. Una vez terminado este paso comenzaremos con los botones de los número colocaremos esta línea de código en el evento OnClick del botón.
procedure TForm1.Button13Click(Sender: TObject);
begin
Numero('1');
end;
Esto colocara el número dentro del memo mediante la llamada al procedimiento Numero creado con anterioridad. Realice esta misma operación hasta el número 9 cambiando dentro del parenticis el número.
Comenzaremos con los botones de las Operaciones todos llevaran el mismo código el procedimiento Operaciones será el encargado de definir cual botón fue pulsado por el usuario, mediante la propiedad Tag del botón.
procedure TForm1.SumaClick(Sender: TObject);
begin
if Suma.Tag = 0 Then
Resp := strtofloat(Display.Text)
else
Operaciones();
Calculo();
Suma.Tag := 2;
end;
El único cambio a realizar es la condición requerida al principio del procedimiento para saber si fue pulsado o no el botón. En este procedimiento sale a relucir los cambios de valor de nuestros componentes, como verán el componente Memo solo soporta valores de tipo String y trabajaremos con valores Float, por lo que debemos convertir dichos valores mediante la sentencia StrToFloat o Viceversa. Esto será visto durante todos las operaciones de la Calculadora.
Seguidamente crearemos la operación Igual. Simplemente este botón hace una llamada al procedimiento Operaciones para que realice las operaciones pulsada por el usuario e inicializa todas las propiedades Tag de los botones a 0;
procedure TForm1.IgualClick(Sender: TObject);
begin
// Realizar Operaciones
Operaciones();
// inicializar Todo
Display.Tag := 0;
Pto.Tag := 0;
Suma.Tag := 0;
Resta.Tag := 0;
Multip.Tag := 0;
Divi.Tag := 0;
Porc.Tag := 0;
end;
[email protected]
Ahora pasaremos al botón (Pto) de nuestra calculadora Simplemente creamos la condición de que si fue pulsado el botón y nuestro display existe el valor 0 colocamos el punto después del cero y continuamos con los demás valores y si no existe colocamos el punto solamente y continuamos con los demás valores.
procedure TForm1.ptoClick(Sender: TObject);
begin
if Pto.Tag = 0 then
if Display.Tag = 0 then
Numero('0,')
else
Numero(',');
Pto.Tag := 1;
end;
Y para terminar nuestra calculadora deberá tener un botón que reinicie nuestros valores es decir un botón AC colocamos estas líneas en el evento OnClick del botón.
Display.Text:='0';
Display.Tag:=0;
pto.Tag:=0;
Resp:=0;
Porc.Tag:=0;
Bueno hemos terminado nuestra calculadora, se le pueden colocar innumerables operaciones pero eso queda a su imaginación. Cualquier duda o sugerencia escriban a mi email.