Ver Mensaje Individual
  #3  
Antiguo 29-06-2016
Avatar de BDWONG
BDWONG BDWONG is offline
Miembro
NULL
 
Registrado: nov 2013
Posts: 113
Reputación: 11
BDWONG Va por buen camino
Bueno la realidad es que el Form si esta utilizando programacion orientada objetos pero la forma en que lo resuelves no lo es precisamente, me imagino que tu profesor te habra pedido que crearas una clase para resolver el problema y en base a eso utilizar un form para mostrar los datos de manera mas visual

Si estoy en lo correcto me arme un sencilla clase llamada TFranela que pide por el constructor el modelo de la franela, tamano y cantidad y en base a estos datos con el metodo calcularPrecio retorna un total donde ya va involucrado tanto el aumetno segun el tamano de la franela y el descuento si se compra mas de 12 piezas.

Ejemplo:
Código Delphi [-]
type
  TModelo=(casual=4300,sport=3800,algodo=3500);
  TTalla=(catorce=0,dieciseis=300,dieciocho=600);

  { TFranela }

  TFranela=class(TObject)
    private
    fmodelo:TModelo;
    ftalla:TTalla;
    fcantidad: DWord;
    public
    constructor create(modelo:TModelo; talla:TTalla; cantidadWord);
    function calcularPrecio: Double;
  end;

{ TFranela }

{Constructo que crea un objeto de tipo TFranela en base a un modelo, talla y
cantidad de piezas}
constructor TFranela.create(modelo: TModelo; talla: TTalla; cantidad: DWord);
begin
  inherited create;
  self.fmodelo:=modelo;
  self.ftalla:=talla;
  self.fcantidad:=cantidad;
end;


{Funcion para calcular el preccio de la franela o franelas en base  al precio por modelo
multiplicado por la cantidad de piezas y mas los bolivares extras segun la talla}
function TFranela.calcularPrecio: Double;
var totalouble;
begin
    total:=ord(fmodelo)*fcantidad+ord(ftalla); //calculamos el total

    if Self.fcantidad>12 then total:=total-(total*0.10); //Restamos el 10 %

    Result:=total;
end;

var
  f1:TFranela;
  precio: Double;
begin
  //creeamos el objeto
  f1:=TFranela.create(algodo,dieciocho,1);

  precio:=f1.calcularPrecio();
  WriteLn(precio:0:2);

  f1.Free;  //liberamos la memoria

  ReadLn;
end

PD: El programa funciona en modo consola pero puedes copiarte toda la clase y meterla en una unit y hacer el llamado de la clase desde tu form.
si tienes dudas me avisas
SALUDOS.....

Última edición por BDWONG fecha: 29-06-2016 a las 21:30:55.
Responder Con Cita