Código de Barras
17/02/2003
0
será que alguém não tem um exemplo de um aplicativo usando código de barras em delphi?
Anonymous
Curtir tópico
+ 0
Responder
Posts
18/02/2003
Anonymous
public
{ Public declarations }
procedure CriaCodBarra(Cod:String;Img:TCanvas);
end;
procedure CriaCodBarra(Cod:String;Img:TCanvas);
Const
Digitos:Array[´0´..´9´] of String[5]=(´00110´,´10001´,´01001´,´11000´,´00101´,´10100´,´01100´,´00011´,´10010´,´01010´);
var
Numero:String;
Digito:String;
C1,C2:Integer;
X,Y,Z,H:LongInt;
A,B,C,D:TPoint;
I:Boolean;
Cod1:Array[1..1000]of Char;
Cod2:Array[1..1000]of Char;
Codigo:Array[1..1000]of Char;
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´;
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);
Codigo[Y]:=´0´;
Inc(Y);
Codigo[Y]:=´0´;
Img.Pen.Width:=1;
Img.Brush.Color:=ClWhite;
Img.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;
Img.Polygon([A,B,C,D]);
Img.Brush.Color:=ClBlack;
Img.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
Img.Polygon([A,B,C,D]);
I:=Not(I);
X:=X + H;
end;
end;
end;
modo de usar coloque um Image,Button e um edit
no OnClick do Botão coloque o codigo abaixo
CriaCodBarra(Edit1.Text,Image1.Canvas);
e tera no image1 o código de barra do numero digitado no edit
se consegui mande um E-MAIL para [url]Otavio@dellasta.com.br[/url]
{ Public declarations }
procedure CriaCodBarra(Cod:String;Img:TCanvas);
end;
procedure CriaCodBarra(Cod:String;Img:TCanvas);
Const
Digitos:Array[´0´..´9´] of String[5]=(´00110´,´10001´,´01001´,´11000´,´00101´,´10100´,´01100´,´00011´,´10010´,´01010´);
var
Numero:String;
Digito:String;
C1,C2:Integer;
X,Y,Z,H:LongInt;
A,B,C,D:TPoint;
I:Boolean;
Cod1:Array[1..1000]of Char;
Cod2:Array[1..1000]of Char;
Codigo:Array[1..1000]of Char;
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´;
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);
Codigo[Y]:=´0´;
Inc(Y);
Codigo[Y]:=´0´;
Img.Pen.Width:=1;
Img.Brush.Color:=ClWhite;
Img.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;
Img.Polygon([A,B,C,D]);
Img.Brush.Color:=ClBlack;
Img.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
Img.Polygon([A,B,C,D]);
I:=Not(I);
X:=X + H;
end;
end;
end;
modo de usar coloque um Image,Button e um edit
no OnClick do Botão coloque o codigo abaixo
CriaCodBarra(Edit1.Text,Image1.Canvas);
e tera no image1 o código de barra do numero digitado no edit
se consegui mande um E-MAIL para [url]Otavio@dellasta.com.br[/url]
Responder
Clique aqui para fazer login e interagir na Comunidade :)