PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Código de barras #374483

01/09/2009

0

Boa Tarde a todos,

Estou com um programa instalado e funcionado na loja de auto peças do cliente e preciso implementar no sistema, Impressão e leitura de código de barras.

Já tenho este font que não está rodando pois solicita o TBarCode, como eu instalo este componente, como eu gero cada código de barra já que as embalagens não tem código de barra?

implementation

{$R *.dfm}

procedure TFImpEtiqCodBarra.PrefBarcode;
begin
Barcode.Top:=BarV.Position;
Barcode.Left:=BarH.Position;
Barcode.Height:=StrToInt(SpTamCod.Text);
Barcode.Ratio:=SpRatio.Value;
Barcode.Modul:=SpModul.Value;
if CkNumero.Checked then
Barcode.ShowText:=bcoCode
else
Barcode.ShowText:=bcoNone;
end;

procedure TFImpEtiqCodBarra.CriaCodigo;
begin
ImageTest.Picture:=nil;
PrefBarcode;
Barcode.Text:=´7895384127812´;
Barcode.DrawBarcode(ImageTest.Canvas);
end;

Procedure TFImpEtiqCodBarra.Aplicar;
begin
QkCodBarra.Page.Width:=StrToFloat(Edwidth.Text);
QkCodBarra.Page.Length:=StrToFloat(EdLengh.Text);
QkCodBarra.Page.LeftMargin:=SpMgEsq.Value;
QkCodBarra.Page.RightMargin:=SpMgDir.Value;
QkCodBarra.Page.TopMargin:=SpMgSup.Value;
QkCodBarra.Page.BottomMargin:=SpMgInf.Value;
QkCodBarra.Page.ColumnSpace:=SpEspacoCol.Value;
QkCodBarra.Page.Columns:=SpNumCol.Value;

QRBand1.Height:= SpTamEtiq.Value;

QRImage1.Left:=0;
QRImage1.Top:=0;
QRImage1.Height:=QRBand1.Height;
QrImage1.Width:=QRBand1.Width;
ImageTest.Width:=QrImage1.Width;
ImageTest.Height:=QRImage1.Height;

BarH.Max:=QrImage1.Width;
BarV.Max:=ImageTest.Height;
end;


procedure TFImpEtiqCodBarra.EdwidthKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in [´0´..´9´,´,´]) then abort;
end;

procedure TFImpEtiqCodBarra.EdLenghKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in [´0´..´9´,´,´]) then abort;
end;

procedure TFImpEtiqCodBarra.CriarClick(Sender: TObject);
begin
CriaCodigo;
end;

procedure TFImpEtiqCodBarra.ImageTestMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
BarV.Position:= Y;
BarH.Position:= X;
CriaCodigo;
end;

procedure TFImpEtiqCodBarra.BarHChange(Sender: TObject);
begin
CriaCodigo;
end;

procedure TFImpEtiqCodBarra.BarVChange(Sender: TObject);
begin
CriaCodigo;
end;

procedure TFImpEtiqCodBarra.Button1Click(Sender: TObject);
var
Ini:TIniFile;
begin
Ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+´etiqueta.ini´);
Aplicar;
CriaCodigo;

//Gravar configurações

Ini.WriteFloat(´Pagina´,´Width´,QkCodBarra.Page.Width);
Ini.WriteFloat(´Pagina´,´Length´,QkCodBarra.Page.Length);
Ini.WriteFloat(´Pagina´, ´MgEsq´,QkCodBarra.Page.LeftMargin);
Ini.WriteFloat(´Pagina´, ´MgDir´,QkCodBarra.Page.RightMargin);
Ini.WriteFloat(´Pagina´, ´MgSup´,QkCodBarra.Page.TopMargin);
Ini.WriteFloat(´Pagina´, ´MgInf´,QkCodBarra.Page.BottomMargin);
Ini.WriteInteger(´Pagina´,´NumCol´,QkCodBarra.Page.Columns);
Ini.WriteFloat(´Pagina´,´EspacoCol´,QkCodBarra.Page.ColumnSpace);
Ini.WriteInteger(´Band´, ´Heigth´, QRBand1.Height);
Ini.WriteInteger(´Barra´, ´Top´, BarV.Position);
Ini.WriteInteger(´Barra´, ´Left´, BarH.Position);
Ini.WriteInteger(´Barra´, ´Tam´, SpTamCod.Value);
Ini.WriteInteger(´Barra´, ´Ratio´, SpRatio.Value);
Ini.WriteInteger(´Barra´, ´Modul´, SpModul.Value);
Ini.WriteBool(´Barra´, ´ImpCod´, CkNumero.Checked);
ini.Free;

end;

procedure TFImpEtiqCodBarra.FormCreate(Sender: TObject);
var
Ini:TIniFile;
begin
Ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+´etiqueta.ini´);
Edwidth.Text:=FloatToStr(Ini.readFloat(´Pagina´,´Width´,QkCodBarra.Page.Width));
EdLengh.Text:=FloatToStr(Ini.readFloat(´Pagina´,´Length´,QkCodBarra.Page.Length));
SpMgEsq.Value:=Trunc(Ini.readFloat(´Pagina´, ´MgEsq´,QkCodBarra.Page.LeftMargin));
SpMgDir.Value:=Trunc(Ini.readFloat(´Pagina´, ´MgDir´,QkCodBarra.Page.RightMargin));
SpMgSup.Value:=Trunc(Ini.readFloat(´Pagina´, ´MgSup´,QkCodBarra.Page.TopMargin));
SpMgInf.Value:=Trunc(Ini.readFloat(´Pagina´, ´MgInf´,QkCodBarra.Page.BottomMargin));
SpNumCol.Value:=Ini.readInteger(´Pagina´,´NumCol´,QkCodBarra.Page.Columns);
SpEspacoCol.Value:=Trunc(Ini.readFloat(´Pagina´,´EspacoCol´,QkCodBarra.Page.ColumnSpace));

SpTamEtiq.Value:=Ini.readInteger(´Band´, ´Heigth´, QRBand1.Height);

BarV.Position:=Ini.readInteger(´Barra´, ´Top´, BarV.Position);
BarH.Position:=Ini.readInteger(´Barra´, ´Left´, BarH.Position);
SpTamCod.Value:=Ini.readInteger(´Barra´, ´Tam´, SpTamCod.Value);
SpRatio.Value:=Ini.readInteger(´Barra´, ´Ratio´, SpRatio.Value);
SpModul.Value:=Ini.readInteger(´Barra´, ´Modul´, SpModul.Value);
CkNumero.Checked:=Ini.readBool(´Barra´, ´ImpCod´, CkNumero.Checked);
Aplicar;
CriaCodigo;
end;

procedure TFImpEtiqCodBarra.QkCodBarraNeedData(Sender: TObject;
var MoreData: Boolean);
begin
MoreData:=(Indice < Codigos.Lines.Count+SpEtiqInicial.Value);
if MoreData then
begin
QRImage1.Picture:=Lista[Indice].Picture;
QkCodBarra.QRPrinter.Progress := (Longint(Indice) * 100) div Codigos.Lines.Count;
end
else
QkCodBarra.QRPrinter.Progress := 100;
Inc(Indice);
end;

procedure TFImpEtiqCodBarra.QkCodBarraBeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
Indice:=0;
end;

procedure TFImpEtiqCodBarra.BtImprimirClick(Sender: TObject);
var
i: integer;
begin

if codigos.Lines.Count < 1 then begin

showmessage(´Preencha o nº da etiqueta´);abort;
end;[color=red:890b68ae06][b:890b68ae06] //Qual seria o número da etiqueta a preencher?[/b:890b68ae06][/color:890b68ae06]

for i := 0 to Length(Lista)-1 do
Lista[i].Free;
SetLength(Lista, Codigos.Lines.Count+ SpEtiqInicial.Value+1);

for i := 0 to Codigos.lines.Count + SpEtiqInicial.Value do
begin

Lista[i]:=TImage.Create(Self);
with Lista[i] do
begin
Visible:=False;
Parent:=Self;
end;

Lista[i].Picture:=Nil;

if i>=SpEtiqInicial.Value then
begin
PrefBarcode;
Barcode.Text:= Codigos.Lines[I-SpEtiqInicial.Value];
Barcode.DrawBarcode(Lista[i].Canvas);
end;
end;
QkCodBarra.PreviewModal;
SetLength(Lista,0);
end;


Valdir Lima

Valdir Lima

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar