Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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; ImageTest.Picture:=nil;
PrefBarcode;
Barcode.Text:='7895384127812';
Barcode.DrawBarcode(ImageTest.Canvas);
end;
Procedure TFImpEtiqCodBarra.Aplicar; 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); if not (key in ['0'..'9',',']) then abort;
end;
procedure TFImpEtiqCodBarra.EdLenghKeyPress(Sender: TObject; var Key: Char); if not (key in ['0'..'9',',']) then abort;
end;
procedure TFImpEtiqCodBarra.CriarClick(Sender: TObject); CriaCodigo;
end;
procedure TFImpEtiqCodBarra.ImageTestMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); BarV.Position:= Y;
BarH.Position:= X;
CriaCodigo;
end;
procedure TFImpEtiqCodBarra.BarHChange(Sender: TObject); CriaCodigo;
end;
procedure TFImpEtiqCodBarra.BarVChange(Sender: TObject); CriaCodigo;
end;
procedure TFImpEtiqCodBarra.Button1Click(Sender: TObject); 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); 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); 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); Indice:=0;
end;
procedure TFImpEtiqCodBarra.BtImprimirClick(Sender: TObject);if codigos.Lines.Count < 1 then begin
showmessage('Preencha o nº da etiqueta'); [[color="#FF0000"]b]//Qual seria o número da etiqueta a preencher?[/b][/color]
abort;
end;
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;Carregando comentários...