Fórum Peguem a Rotina que Gera o Código de Barras #152895
08/04/2003
0
Aí vai pessoal
Matéria:
Desenvolvi esta rotina em uma epoca em que era muito dificil achar um componente para codigo de barras 2x5i, e os que eu achei na net nao faziam os codigos do tamanho requerido pela FEBRABAN.
a procedure abaixo desenva em um canvas o codigo relativo ao valor passado.
No evento beforeprint da band do Quick report para gerar o codigo de barras que será impresso em boletos bancarios.
Procedure CriaCodigo(Cod : String; Imagem : TCanvas);
Const
digitos : array[´0´..´9´] of string[5]= (´00110´,
´10001´,
´01001´,
´11000´,
´00101´,
´10100´,
´01100´,
´00011´,
´10010´,
´01010´);
Var
Numero : String;
Cod1 : Array[1..1000] Of Char;
Cod2 : Array[1..1000] Of Char;
Codigo : Array[1..1000] Of Char;
Digito : String;
c1,c2 : Integer;
x,y,z,h : LongInt;
a,b,c,d : TPoint;
I : Boolean;
Begin
Numero := Cod;
For x := 1 to 1000 Do
Begin
Cod1 [x] := #0;
Cod2 [x] := 0;
Codigo[x] := 0;
End;
c1 := 1;
c2 := 1;
x := 1;
For y := 1 to Length(Numero) div 2 do
Begin
Digito := Digitos[Numero[x ]]; For z := 1 to 5 do Begin Cod1[c1] := Digito[z]; Inc(c1); End;
Digito := Digitos[Numero[x+1]]; For z := 1 to 5 do Begin Cod2[c2] := Digito[z]; Inc(c2); End;
Inc(x,2);
End;
y := 5;
Codigo[1] := ´0´; Codigo[2] := ´0´; Codigo[3] := ´0´; Codigo[4] := ´0´; { Inicio do Codigo }
For x := 1 to c1-1 do
begin
Codigo[y] := Cod1[x]; Inc(y);
Codigo[y] := Cod2[x]; Inc(y);
end;
Codigo[y] := ´1´; Inc(y); { Final do Codigo }
Codigo[y] := ´0´; Inc(y);
Codigo[y] := ´0´;
Imagem.Pen .Width := 1;
Imagem.Brush.Color := ClWhite;
Imagem.Pen .Color := ClWhite;
a.x := 1; a.y := 0;
b.x := 1; b.y := 79;
c.x := 2000; c.y := 79;
d.x := 2000; d.y := 0;
Imagem.Polygon([a,b,c,d]);
Imagem.Brush.Color := ClBlack;
Imagem.Pen .Color := ClBlack;
x := 0;
i := True;
for y:=1 to 1000 do
begin
If Codigo[y] <> #0 Then
Begin
If Codigo[y] = ´0´ then h := 1 Else h := 3;
a.x := x; a.y := 0;
b.x := x; b.y := 79;
c.x := x+h-1; c.y := 79;
d.x := x+h-1; d.y := 0;
If i Then Imagem.Polygon([a,b,c,d]);
i := Not(i);
x := x + h;
End;
end;
end;
E VÃO À M-E-R-D-A SEUS ANALISTAS AMADORES E ANTI PROFISIONAIS ! DEÊM LUGAR ÀS PESSOAS QUE QUEREM CRESCER [b:f73c1bd35c]PESSOALMENTE[/b:f73c1bd35c] E PROFISSIONALMENTE ! :x :x :x
ENJOY !
JULIEN MURRAY
Julienmurray
Curtir tópico
+ 0Post mais votado
26/06/2019
Jaques Junior
Gostei + 1
Mais Posts
08/04/2003
Julienmurray
Pô LAMMERS, além de se acharem ´Expertos´, ainda dão uma de malandros. Vão dar de malandros em cima de seu irmãozinho mais novo que ainda é errado fazer isso.
Gostei + 0
08/04/2003
Julienmurray
Gostei + 0
08/04/2003
Julienmurray
:shock: :shock: :shock: :shock: :shock: :shock:
Gostei + 0
08/04/2003
Eniorm
haha, eu tbm sou da elite Maidenmaniaca!
Fui...
Gostei + 0
09/04/2003
Julienmurray
Gostei + 0
09/04/2003
Hhhhhh
Gostei + 0
09/04/2003
Julienmurray
:D Não testei ainda ! :D
huahuahuahuahauhaua :D
Se vc Conseguir, imensamente agradecido.....
Julien ´Murray´
Gostei + 0
09/04/2003
Julienmurray
Gostei + 0
09/04/2003
Julienmurray
Iron Maiden´s get you !
[img:a9200a9f12]http://members.tripod.com/~mbaudino/img/nob.gif[/img:a9200a9f12]
:twisted: Julien ´Murray´ :twisted:
Gostei + 0
09/04/2003
Anonymous
[b:a90056d55f]Barcode Component v.1.15 FWS 17 Kb 4 Oct 1999 [/b:a90056d55f]
By Andreas Schmidt. A Free Barcode Component. Works with Code_2_5_industrial, Code_2_5_matrix, Code39, Code39Extended, Code128A, Code128B, Code128C, Code93, Code93Extended, MSI, PostNet, Codabar, EAN8, EAN13.
Fully functional
[b:a90056d55f]Source: Included[/b:a90056d55f]
http://www.torry.net/barcodes.htm
Gostei + 0
09/04/2003
Julienmurray
[b:ed07274546]Barcode Component v.1.15 FWS 17 Kb 4 Oct 1999 [/b:ed07274546]
By Andreas Schmidt. A Free Barcode Component. Works with Code_2_5_industrial, Code_2_5_matrix, Code39, Code39Extended, Code128A, Code128B, Code128C, Code93, Code93Extended, MSI, PostNet, Codabar, EAN8, EAN13.
Fully functional
[b:ed07274546]Source: Included[/b:ed07274546]
http://www.torry.net/barcodes.htm[/quote:ed07274546]
Valeu amigão, Pessoal, este deve funcionar também !
[img:ed07274546]http://members.tripod.com/~mbaudino/img/pom.gif[/img:ed07274546]
:twisted: Julien ´Murray´ :twisted:
Gostei + 0
10/04/2003
Julienmurray
Olha, posso parecer até um chato postando toda hora esta mensagem, mas pense, quem iria compartilhar um conhecimento tão importante que nem esse?
Eu fiz outra experiência(quem conhece, já sabe) e deu certo também.
Entrem em www.netfontes.com.br e procure no menu à esquerda a opção busca fonte, digite a palavra [b:7b0784f6ce]Código[/b:7b0784f6ce] e clique em [b:7b0784f6ce]Buscar[/b:7b0784f6ce].
Virá como resultado duas fontes, sendo que uma delas é a fonte do código de barras ! Dê um clique e baixe a fonte para seu computador.
Depois de instalada a fonte faça isso:
Como sabe-se de que o código de barra é reconhecido pelo sistema como n°( se for também letra, me avisem ! Obrigado !), o que se faz:
Na hora de Cadastrar um produto no sistema, registre o n° do Código de Barras, uma maneira que eu acho eficiente, e fazer uma rotina de n° aleatórios com um ´[b:7b0784f6ce]For[/b:7b0784f6ce]zinho´ .
Depois de cadastrados os n°, pronto, seu leitor de código de barras irá ler aquele código e ira procurar no banco o n°.
Mas infelizmente vai dar ERRO !
Na hora de vc fazer a rotina que gera o n°, não se esqueça de colocar um asterisco em cada ponta, para que não de erro (não sei porquê, alguém sabe?)
E depois eu venho com uma dúvida bem simples:
COMO SABE-SE DE QUE O LEITOR RECONHECE CARACTERES, COMO EU FAÇO A ROTINA DE PASSA AQUILO QUE LEU PARA UM LABEL, POR EXEMPLO?
OBRIGADO !
:twisted: Julien ´Murray´ :twisted:
Gostei + 0
10/04/2003
Anonymous
Os asteriscos são identificadores de início e fim do padrão 3e9.
Gostei + 0
10/04/2003
Julienmurray
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)