Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Limas

Gerar Código de Barras

Recommended Posts

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'); [[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;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em primeiro lugar, onde você pegou este fonte não tinha o componente utilizado para download? Que eu lembre ele não é nativo do delphi, é componente de terceiros, de modo que tem que fazer uma pesquisa na net para encontrar o fonte certo para que o código que postou acima funcione...

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em primeiro lugar, onde você pegou este fonte não tinha o componente utilizado para download? Que eu lembre ele não é nativo do delphi, é componente de terceiros, de modo que tem que fazer uma pesquisa na net para encontrar o fonte certo para que o código que postou acima funcione...

 

[]'s

 

 

 

Certo Chrnos, este fonte é de tercero, pesquisei e adiquiri o CJV.

 

Muito obrigado pela sua atenção e do bdexterholland.

 

Um grande abraço a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.