Gerar Código de Barra em Delphi

Veja neste artigo como gerar código de barra em Delphi, usando canvas e exibindo o código em um TImage, através de uma procedure onde temos dois parametros o primeiro é uma string representando o número a ser gerado, e o seguinte é o canvas onde vamos exibir o resultado.

Olá galera, estou hoje trazendo um artigo muito interessante e bem simples, ele trata da geração de códigos de barra com Delphi através de uma sequencia de número vamos ver como proceder.

Primeiramente vamos criar um novo projeto, salve o mesmo como prjCodigoBarras.dpr.

Segundo vamos salvar a unit criada como uFrmGerarCodigoBarra.pas. Vamos mudar o Name do Form para FrmGerarCodigoBarra.

Logo em seguida vamos colocar um Componente TImage, e mudar o nome para ImgCodigoBarras, nele que será impresso o código de barra.

Vamos agora adicionar um BitBtn, e mudar seu nome par BtnGerarCodigoBarras e seu Caption para Gerar.

Por ultimo vamos adicionar um LabeledEdit, e mudar seu nome para LblEdtCodigo.

A imagem abaixo mostra como deveria ficar sua tela, igual ou parecida.

Vamos agora criar a procedure para fazer a geração do Código, para isso vamos fazer o seguinte, na seção private declare como mostro abaixo:

type TFrmGerarCodigoBarra = class(TForm) ImgCodigoBarras: TImage; BtnGerarCodigo: TBitBtn; LblEdtCodigo: TLabeledEdit; private procedure GerarCodigo(Codigo: String; Canvas: TCanvas); { Private declarations } public { Public declarations } end;

Logo em seguida precisamos implementar a procedure, posicione o cursos em cima da procedure e usando o CTRL + SHIFT + C você irá ver a implementação

Caso você tenha seguido todos os passos sua unit agora estará com esta cara:

unit uFrmGerarCodigoBarra; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls; type TFrmGerarCodigoBarra = class(TForm) ImgCodigoBarras: TImage; BtnGerarCodigo: TBitBtn; LblEdtCodigo: TLabeledEdit; private procedure GerarCodigo(Codigo: String; Canvas: TCanvas); { Private declarations } public { Public declarations } end; var FrmGerarCodigoBarra: TFrmGerarCodigoBarra; implementation {$R *.dfm} Procedure TFrmGerarCodigoBarra.GerarCodigo(Codigo: String; Canvas : TCanvas); begin end; end.

Agora vamos codificar a procedure GerarCodigo, veja o código a ser informado para geração do Canvas.

Procedure TFrmGerarCodigoBarra.GerarCodigo(Codigo: String; Canvas : TCanvas); const digitos : array["0".."9"] of string[5]= ("00110", "10001", "01001", "11000", "00101", "10100", "01100", "00011", "10010", "01010"); var s : string; i, j, x, t : Integer; begin // Gerar o valor para desenhar o código de barras // Caracter de início s := "0000"; for i := 1 to length(codigo) div 2 do for j := 1 to 5 do s := s + Copy(Digitos[codigo[i * 2 - 1]], j, 1) + Copy(Digitos[codigo[i * 2]], j, 1); // Caracter de fim s := s + "100"; // Desenhar em um objeto canvas // Configurar os parâmetros iniciais x := 0; // Pintar o fundo do código de branco Canvas.Brush.Color := clWhite; Canvas.Pen.Color := clWhite; Canvas.Rectangle(0,0, 2000, 79); // Definir as cores da caneta Canvas.Brush.Color := clBlack; Canvas.Pen.Color := clBlack; // Escrever o código de barras no canvas for i := 1 to length(s) do begin // Definir a espessura da barra t := strToInt(s[i]) * 2 + 1; // Imprimir apenas barra sim barra não (preto/branco - intercalado); if i mod 2 = 1 then Canvas.Rectangle(x, 0, x + t, 79); // Passar para a próxima barra x := x + t; end; end;

om este código implementado vamos ver agora como usar a procedure, para isso no evento onClick do BtnGerarCodigoBarras vamos implementar o seguinte:

procedure TFrmGerarCodigoBarra.BtnGerarCodigoClick(Sender: TObject); begin GerarCodigo(LblEdtCodigo.Text, ImgCodigoBarras.Canvas); end;

Com isso finalizamos nosso artigo, veja o resultado do código na imagem a seguir, e neste post baixe o exemplo completo.

Código de Barras gerado.

Confira também

Artigos relacionados