unit CodBarra;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, Barcode, Buttons,Printers, Db, DBTables, Spin,Checa;

type
  TFormaCodigoBarras = class(TForm)
    Barcode1: TBarcode;
    Image1: TImage;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    Barcode2: TBarcode;
    TablaInventario: TTable;
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    TipoCodigo: TComboBox;
    Resaltar: TSpinEdit;
    AnchodeBarra: TSpinEdit;
    Label1: TLabel;
    Label2: TLabel;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    Bevel1: TBevel;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    Articulo: TLabel;
    Panel1: TPanel;
    Bevel2: TBevel;
    Bevel3: TBevel;
    Bevel4: TBevel;
    Panel4: TPanel;
    Label3: TLabel;
    Label4: TLabel;
    Shape1: TShape;
    procedure Edit1Change(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure TipoCodigoChange(Sender: TObject);
    procedure AnchodeBarraChange(Sender: TObject);
    procedure ResaltarChange(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Panel4Click(Sender: TObject);
    procedure Label4MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormaCodigoBarras: TFormaCodigoBarras;

implementation

{$R *.DFM}

{function tipos(tip:string):TBarCodeType;
var
tipo:TBarCodeType;
begin
if tip='Code_2_5_interleaved' then tipo:=Code_2_5_interleaved;
if tip='Code_2_5_industrial' then tipo:=  Code_2_5_industrial;
if tip='Code_2_5_matrix' then tipo:=  Code_2_5_matrix;
if tip='Code39' then tipo:=   Code39;
if tip='Code39Extended' then tipo:=  Code39Extended;
if tip='Code128A' then tipo:=  Code128A;
if tip='Code128B' then tipo:=  Code128B;
if tip='Code128C' then tipo:=  Code128C;
if tip='Code93' then tipo:=  Code93;
if tip='Code93Extended' then tipo:=  Code93Extended;
if tip='CodeMSI' then tipo:=  CodeMSI;
if tip='CodePostNet' then tipo:=  CodePostNet;
if tip='CodeCodabar' then tipo:=  CodeCodabar;
if tip='CodeEAN8' then tipo:=  CodeEAN8;
if tip='CodeEAN13' then tipo:= CodeEAN13;
if tip='CodeUPC_A' then tipo:= CodeUPC_A;
if tip='CodeUPC_E0' then tipo:=   CodeUPC_E0;
if tip='CodeUPC_E1' then tipo:=  CodeUPC_E1;
if tip='CodeUPC_Supp2' then tipo:=  CodeUPC_Supp2;
if tip='CodeUPC_Supp5' then tipo:= CodeUPC_Supp5;
if tip='CodeEAN128A' then tipo:=  CodeEAN128A;
if tip='CodeEAN128B' then tipo:=  CodeEAN128B;
if tip='CodeEAN128C' then tipo:=   CodeEAN128C;

end;                                           }


procedure TFormaCodigoBarras.Edit1Change(Sender: TObject);
begin
  Image1.Picture := nil;
  Barcode1.Text:= Edit1.Text;
{        Barcode1.Ancho:=10;}
	Barcode1.DrawBarcode(Image1.Canvas);

end;

procedure TFormaCodigoBarras.BitBtn2Click(Sender: TObject);
var
i:integer;
begin

Printer.BeginDoc;
Barcode1.Height:=300;
Barcode1.Ancho:=6;

{for i:=0 to 100 do}

TablaInventario.First;
i:=0;
while not TablaInventario.EoF do
begin

Image1.Picture := nil;
Barcode1.Top:=10+(i*550);

Barcode1.Text:=TablaInventario.FieldByName('CLPRO_I').AsString;
Barcode1.DrawBarcode(Printer.Canvas);
Barcode2.DrawBarcode(Image1.Canvas);
TablaInventario.Next;
i:=i+1;
if i=11 then
begin
Printer.NewPage;
i:=0;
end;

end;

Printer.EndDoc;
Barcode1.Ancho:=1;

end;

procedure TFormaCodigoBarras.TipoCodigoChange(Sender: TObject);
begin
  try
  Image1.Picture := nil;
  Barcode1.Text := Edit1.Text;
  Barcode1.Typ := TBarcodeType(TipoCodigo.ItemIndex);
  Edit1Change(Sender);

  Barcode1.DrawBarcode(Image1.Canvas);
  except
  {nada}
  end;


end;


procedure TFormaCodigoBarras.AnchodeBarraChange(Sender: TObject);
begin
Barcode1.Ancho:=AnchodeBarra.Value;
end;

procedure TFormaCodigoBarras.ResaltarChange(Sender: TObject);
begin
Barcode1.Nitidez:=Resaltar.Value;
end;

procedure TFormaCodigoBarras.BitBtn4Click(Sender: TObject);
begin
TablaInventario.Prior;
try
Image1.Picture := nil;
Barcode1.Text:=TablaInventario.FieldByName('CLPRO_I').AsString;
Barcode1.DrawBarcode(Image1.Canvas);
Articulo.Caption:=TablaInventario.FieldByName('DSCPR_I').AsString;
except
{nada}
end;

end;

procedure TFormaCodigoBarras.BitBtn5Click(Sender: TObject);
begin
TablaInventario.Next;
try
Image1.Picture := nil;
Barcode1.Text:=TablaInventario.FieldByName('CLPRO_I').AsString;
Barcode1.DrawBarcode(Image1.Canvas);
Articulo.Caption:=TablaInventario.FieldByName('DSCPR_I').AsString;
except
{nada}
end;

end;

procedure TFormaCodigoBarras.FormCreate(Sender: TObject);
begin
{TablaInventario.Open;
Image1.Picture := nil;
	Barcode1.Top  := 1;
	Barcode1.Left := 1;
Barcode1.Text:=TablaInventario.FieldByName('CLPRO_I').AsString;
Barcode1.DrawBarcode(Image1.Canvas);
Articulo.Caption:=TablaInventario.FieldByName('DSCPR_I').AsString;}

end;

procedure TFormaCodigoBarras.BitBtn3Click(Sender: TObject);
begin
Close;
end;

procedure TFormaCodigoBarras.FormActivate(Sender: TObject);
begin
if FormaCodigoBarras.Tag=0 then
begin

if TablaInventario.State=dsBrowse then
begin
TablaInventario.Close;
end;

TablaInventario.DataBaseName:=ruta(8);
TablaInventario.Open;
try
Image1.Picture := nil;
Barcode1.Top  := 1;
Barcode1.Left := 1;

Barcode1.Text:=TablaInventario.FieldByName('CLPRO_I').AsString;
Barcode1.DrawBarcode(Image1.Canvas);
Articulo.Caption:=TablaInventario.FieldByName('DSCPR_I').AsString;
except
{nada}
end;

end;
FormaCodigoBarras.Tag:=1;

end;

procedure TFormaCodigoBarras.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
FormaCodigoBarras.Tag:=0;
end;




procedure TFormaCodigoBarras.Panel4Click(Sender: TObject);
begin
Close;
end;

procedure TFormaCodigoBarras.Label4MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(FormaCodigoBarras.Handle, WM_SYSCOMMAND, $F012, 0);
end;

end.
