Ver Mensaje Individual
  #2  
Antiguo 15-03-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Reputación: 22
ixMike Va por buen camino
Ay ¿que no saliste el día anterior a la clase de juerga?

Veamos, veamos... tienes un Form, con un botón, dos Edits y un Label. En los dos Edits escribirás el valor de la base y la altura. Al darle al botón se calculará el área, y se mostrará en el Label, ¿ok?.

Bien, pues haz doble clic en el botón, te apareceré el editor de código algo así:

Código Delphi [-]
Procedure TForm1.Button1Click(Sender: TObject);
begin

end;

Bien, pues ahora necesitas crear esas variables "a" y "b" que quieres. La declaración de las variables de debe hacer con la palabra reservada var y después todas las variables que quieras. Bien, para tenerlas en el ámbito del método Click del botón, colocaremos la declaración antes del begin:

Código Delphi [-]
Procedure TForm1.Button1Click(Sender: TObject);
var
  Base, Altura: Real;
begin

end;

Vale, yo las he llamado Base y Altura. Te recomiendo que llames siempre a las variables por un nombre que no vayas a olvidar, porque ahora son dos, pero después serán decenas, incluso centenas, y necesitan nombres claros

Ok. Ahora necesitamos asignar a las variables los valores escritos en los Edits. Para ello necesitarás una función que transforme el texto a un número real, y esa es StrToFloat.

Código Delphi [-]
Procedure TForm1.Button1Click(Sender: TObject);
var
  Base, Altura: Real;
begin
  Base:=StrToFloat(EBase.Text);
  Altura:=StrToFloat(EAltura.Text);
end;

También he dado nombres a los Edits (en el inspector de objetos, en su propiedad Name) para facilitar las cosas.

Bien, ahora necesitamos almacenar el resultado. ¿Otra variable? Pues sí, bien:

Código Delphi [-]
Procedure TForm1.Button1Click(Sender: TObject);
var
  Area, Base, Altura: Real;
begin
  Base:=StrToFloat(EBase.Text);
  Altura:=StrToFloat(EAltura.Text);
  Area:=Base*Altura/2;
end;

Muy bien, y ahora sólo queda mostrar el resultado en el Label (en su propiedad Caption). Pero nos pasa lo inverso que con los Edits, ahora necesitamos convertir un número a texto. Pues nada, Delphi nos trae la genial FloatToStr:

Código Delphi [-]
Procedure TForm1.Button1Click(Sender: TObject);
var
  Area, Base, Altura: Real;
begin
  Base:=StrToFloat(EBase.Text);
  Altura:=StrToFloat(EAltura.Text);
  Area:=Base*Altura/2;
  lblResultado.Caption:=FloatToStr(Area);
end;

Y ya está, ya tienes el área

No obstante, y aunque ahora eso para ti no es importante, aquí ha habido un derroche de variables. Si empiezas a sustituir expresiones por las asignaciones antesriores vas obteniedo...
Código Delphi [-]
Procedure TForm1.Button1Click(Sender: TObject);
var
  Area, Base, Altura: Real;
begin
  Base:=StrToFloat(EBase.Text);
  Altura:=StrToFloat(EAltura.Text);
  Area:=Base*Altura/2; //Valor de Area
  lblResultado.Caption:=FloatToStr(Area); //Se usa Area
end;

Código Delphi [-]
Procedure TForm1.Button1Click(Sender: TObject);
var
  Base, Altura: Real;
begin
  Base:=StrToFloat(EBase.Text); //Valor de Base
  Altura:=StrToFloat(EAltura.Text); //Valor de Altura
  lblResultado.Caption:=FloatToStr(Base*Altura/2); //Se usa Base y Altura
end;

Código Delphi [-]
Procedure TForm1.Button1Click(Sender: TObject);
begin
  lblResultado.Caption:=FloatToStr(StrToFloat(EBase.Text)*StrToFloat(EAltura.Text)/2);
end;

Y así es como uno se ahorra declarar variables y demás pero tiempo al tiempo, tú de momento empieza creando las cosas claras y amplias, y después ya intenta ser más abstracto


Salu2.

Última edición por ixMike fecha: 15-03-2008 a las 22:23:04.
Responder Con Cita