unit Tara;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons;

type
  TFormaTara = class(TForm)
    Tara_Producto: TEdit;
    Cantidad_Tara: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Cantidad: TLabel;
    Facto: TEdit;
    Label1: TLabel;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormShow(Sender: TObject);
    procedure Tara_ProductoExit(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormaTara: TFormaTara;

function GeneraTara(canti,tara,tara_fac:real):real;
implementation

{$R *.DFM}

function redondea(cantidad:Real;digi:word):Real;
var
numcanti:string;
begin

Str(cantidad:10:digi,numcanti);
redondea:=StrToFloat(numcanti);
//ShowMessage(numcanti);
end;



function GeneraTara(canti,tara,tara_fac:real):real;
var
tar:real;
begin
 FormaTara:=TFormaTara.Create(Application);
with FormaTara do
begin
//tara:=0;
Cantidad.Caption:=FormatCurr('#######0.00',redondea(canti,2));
Facto.Text:=FormatCurr('#######0.00',redondea(tara,2));
if tara_fac<=0 then
tara_fac:=1;

tar:=Round(canti/tara_fac);
tar:=tar*tara;

Tara_Producto.Text:=FormatCurr('######0.00',redondea(0,2));


Cantidad_Tara.Caption:=FormatCurr('######0.00',redondea(canti-tar,2));

ShowModal;

tar:=StrToFloat(Tara_Producto.Text)*StrToFloat(Facto.Text);

if tag= 1 then
GeneraTara:=redondea(canti-tar,2)
else
GeneraTara:=canti;
end;
FormaTara.Free;
end;


procedure TFormaTara.BitBtn1Click(Sender: TObject);
begin
Tag:=1;
Close;
end;

procedure TFormaTara.BitBtn2Click(Sender: TObject);
begin
Tag:=0;
Close;
end;

procedure TFormaTara.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
case key of
13:begin
Tag:=1;
Close;
end;

27:begin
tag:=0;
Close;
end;
end;



end;

procedure TFormaTara.FormShow(Sender: TObject);
begin
Tara_Producto.SelectAll;
end;


procedure TFormaTara.Tara_ProductoExit(Sender: TObject);
var
tar:real;
begin

tar:=StrToFloat(Cantidad.Caption)-(StrToFloat(Tara_Producto.Text)*StrToFloat(Facto.Text));
Cantidad_Tara.Caption:=FormatCurr('######0.00',redondea(tar,2));


end;

end.
