DevMedia
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login

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.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você poderia comentar o que não lhe agradou?

Confirmo meu voto negativo

Olá galera, estou hoje trazendo um artigo muito interessante e bem simples, ele trata da geração de códigos de barra 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;


Com 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.

 

 

Um abraço

 

Wesley Y



Atuou como desenvolvedor/consultor há mais de 9 anos. Liderou, como projetista/analista, diversos importantes projetos de TI na Marinha do Brasil. Atualmente é coordenador editorial da web-03, incluindo os sites DevMedia, JavaFree [...]

O que você achou deste post?
Conhece a assinatura MVP?
Serviços

Mais posts