A lista não aceita anexos =] []'s
Atenciosamente, --- Eric Roberto Darruiz - Desenvolvimento e Soluções de Tecnologia Windows/Linux [EMAIL PROTECTED] --- ICQ: 78562726 MSN: [EMAIL PROTECTED] --- "Talk is cheap, show me the code..." --- ----- Original Message ----- From: "Denise" <[EMAIL PROTECTED]> To: <delphi-br@yahoogrupos.com.br> Cc: "Delphi" <delphi-br@yahoogrupos.com.br> Sent: Wednesday, November 09, 2005 1:18 PM Subject: Re: [delphi-br] Código de Barras Tenho esse componente mas é para delphi 5. Vê se serve ----- Original Message ----- From: Fabrício Pinheiro França To: delphi-br@yahoogrupos.com.br Sent: Tuesday, November 08, 2005 10:50 PM Subject: Re: [delphi-br] Código de Barras Tem dois tipos de funções que eu tenho. Para gerar código I25 e EAN13. As duas utilizam um componente imagem Procedure I25CriaCodBarra(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; Function EAN13Calculadv(codigo:string):string; var i,sp,si,d,dv:word; s:single; begin if length(codigo)>12 then codigo:=copy(codigo,1,12); sp:=0; si:=0; for i:=1 to length(codigo) do begin d:=strtoint( copy(codigo,i,1) ); if odd(length(codigo)+1-i) then si:=si+d*7 else sp:=sp+d*9; end ; s:=(sp+si)/10; dv:=Trunc(10*frac(s)); if codigo='' then EAN13Calculadv := '' else EAN13Calculadv := codigo+inttostr(dv) ; end; procedure EAN13DesenhaBarras(SequenciaHexa: string; Imagem: TCanvas); var X, Y, H: LongInt; A, B, C, D: TPoint; I: Boolean; begin Imagem.Brush.Color := ClWhite; Imagem.Pen.Color := ClBlack; x := 10; i := True; for y := 1 to Length(SequenciaHexa) do begin if SequenciaHexa[y] = '0' then Imagem.Pen.Color := ClWhite else Imagem.Pen.Color := ClBlack ; h := 1; a.x := x; a.y := 0; b.x := x; b.y := 50; c.x := x + h - 1; c.y := 50; d.x := x + h - 1; d.y := 0; case Y of 1..3, 46..50, 93..95: begin b.y := 55; c.y := 55; end ; end; Imagem.Polygon([A, B, C, D]); i := not (i); x := x + h; end ; end; procedure EAN13CriaCodBarra(CodBarras: string; Imagem: TCanvas); const TabelaA: array[0..9] of string[7] = ('0001101', '0011001', '0010011', '0111101', '0100011', '0110001', '0101111', '0111011', '0110111', '0001011'); TabelaB: array[0..9] of string[7] = ('0100111', '0110011', '0011011', '0011011', '0011101', '0111001', '0000101', '0010001', '0001001', '0010111'); TabelaC: array[0..9] of string[7] = ('1110010', '1100110', '1101100', '1000010', '1011100', '1001110', '1010000', '1000100', '1001000', '1110100'); TabAux: array[0..9] of string[6] = ('AAAAAA', 'AABABB', 'AABBAB', 'AABBBA', 'ABAABB', 'ABBAAB', 'ABBBAA', 'ABABAB', 'ABABBA', 'ABBABA'); var Codigo: string; Formato: string; PegaDaTabela: string; DecimoTerceiroDig: Byte; Cont: Byte; begin CodBarras := '7' + EAN13Calculadv(CodBarras); Formato := ''; Codigo := CodBarras; DecimoTerceiroDig := StrToIntDef(CodBarras[1], 0); {----------------------------------------------------------------------------} { Tendo o 13º dígito definido, posso definir o padrão de impressão das barras} { no primeiro conjunto de 6 dígitos baseado na tabela Auxiliar. } {----------------------------------------------------------------------------} PegaDaTabela := TabAux[DecimoTerceiroDig] + 'CCCCCC'; Formato := Formato + '101'; //--> Barra Auxiliar de Guarda 'Esquerda' for Cont := 1 to Length(PegaDaTabela) do begin case PegaDaTabela[Cont] of 'A': Formato := Formato + TabelaA[StrToInt(Codigo[Cont + 1])]; 'B': Formato := Formato + TabelaB[StrToInt(Codigo[Cont + 1])]; 'C': Formato := Formato + TabelaC[StrToInt(Codigo[Cont + 1])]; end; if Cont = 6 then Formato := Formato + '01010' //--> Barra Auxiliar de Guarda 'Central' ; end ; Formato := Formato + '101'; //--> Barra Auxiliar de Guarda 'Direita' //------ Desenha o código alfa-numérico na imagem Imagem.Font.Size := 10; Imagem.Brush.Color := ClWhite; Imagem.Pen.Color := ClBlack; Imagem.TextOut(02, 51, Copy(CodBarras, 01, 01)); Imagem.TextOut(13, 51, Copy(CodBarras, 02, 06)); Imagem.TextOut(60, 51, Copy(CodBarras, 08, 06)); //------ Desenha as barras na imagem EAN13DesenhaBarras(Formato, Imagem); end; Espero ter ajudado Fabrício Pinheiro França ----- Original Message ----- From: fmansi2001 To: delphi-br@yahoogrupos.com.br Sent: Tuesday, November 08, 2005 12:02 PM Subject: [delphi-br] Código de Barras Galera; Estou precisando de um componente ou função que gere códigos de barras em Delphi/Kylix para impressões em modo texto. Ex.: Nota Fiscal Alguém sabe me informar onde posso encontrar, já procurei na net e não achei só encontrei para modo gráfico. Obrigado Francisco Mansi -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE ------------------------------------------------------------------------------ Links do Yahoo! Grupos a.. Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ b.. Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!. [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE ------------------------------------------------------------------------------ Links do Yahoo! Grupos a.. Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ b.. Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!. [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Links do Yahoo! Grupos _______________________________________________________ Yahoo! Acesso Grátis: Internet rápida e grátis. Instale o discador agora! http://br.acesso.yahoo.com/ -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html