Composant code barre 39-ean13-ean8

Soyez le premier à donner votre avis sur cette source.

Vue 14 961 fois - Téléchargée 2 083 fois

Description

J'ai réalisé ce composant, descendant de TgraphicControl, car j'en avais assez de devoir intégrer les polices codebarre dans mes projets.
C'est mon premier composant, il a sûrement des erreurs de syntaxe dans sa déclaration.

Voici les propriétés dont il dispose :
composant codebarre 39 EAN8 EAN13, redimensionnable
propriété BarCodeType : type du code barre
propriété BarWidth : largeur des barres de base
propriété BarWidthXL : largeur des barres larges
propriété Code : le code barre à afficher
propriété WithText : avec ou sans le code en texte clair
propriété bitmap : contient le bitmap du code barre
propriété printratio : facteur d'échelle pour la propriété bitmapforprint
propriété bitmapforprint : contient le bitmap du code barre mis à l'échelle avec printratio
propriété IsfixedWidth : force la largeur du codebarre (peut dégrader la qualité)

Conclusion :


Le zip contient le composant BarCode et un exemple d'utilisation

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Pour un premier composant visuel, je trouve celui ci très soigné. Continue comme ça ^^
Sinon, petite amélioration: comme l'ordre de tes 44 cases du tableau est le même que ta chaîne AuthorizedChars, tu peux tout simplement le déclarer comme

C39: array[0..43, 0..8] Byte =
((0,0,0,1,1,0,1,0,0), // Pour le caractère '0'
(1,0,0,1,0,0,0,0,1), // Pour le caractère '1'
...,...); // etc...

Ce qui te permet d'économiser une boucle dans la procédure Paint().
En effet, ceci:
# //Car. Composition B S B S B S B S B
# X1:=0;
# for i:=1 to length(Fcode) do
# begin
# //cherche le caractère et trace le code
# for j:=0 to length(C39)-1 do
# if C39[j].C=Fcode[i] then
# begin
# TraceCode(j);
# break;
# end;
# end;

devient cela :
# for i := 1 to length(FCode) do
# TraceCode(Pos(FCode[i], AuthorizedChars));

De même, tous les C39[index].B[i] seront transformés en C39[index, i] et les C39[index].C en AuthorizedChars[index]

Ceci permet d'éviter une duplication des données !

Sinon, un petit code d'exemple serait le bienvenu !

A +
Flo
dvarrel
Messages postés
13
Date d'inscription
samedi 24 mai 2003
Statut
Membre
Dernière intervention
7 octobre 2007
-
merci Florenth,


pour le code d'exemple, il n'y a pas grand chose à dire, à part poser le composant sur une fiche, et changer sa propriété "Code" !

Après dépendant de l'appli on imprime le code barre (moi j'exporte mes listes de codebarre en pdf avec un compo freeware).
dvarrel
Messages postés
13
Date d'inscription
samedi 24 mai 2003
Statut
Membre
Dernière intervention
7 octobre 2007
-
il faut mettre :

# TraceCode(Pos(FCode[i], AuthorizedChars)-1);

au lieu de :

# TraceCode(Pos(FCode[i], AuthorizedChars));

:)
Pour l'exemple: c'est juste histoire d'avoir un projet tout fait dans lequel il y a un édit permettant de changer le code barre sans avoir de besoin d'installer le composant, de créer un nouveau projet, de le poser et de faire quelques tests.
Les gens sont faignants de nos temps ^^

Et merci pour le "-1", j'avais totalement zappé (j'ai écris le code en live, pas testé dans delphi).

A quand une petite mise à jour ?
dvarrel
Messages postés
13
Date d'inscription
samedi 24 mai 2003
Statut
Membre
Dernière intervention
7 octobre 2007
-
c'est fait !

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.