Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CODEDLT


Information sur la source

Catégorie :Imprimante Classé sous : codebarre, imprimante, printer, dlt, lto Niveau : Débutant Date de création : 21/07/2006 Date de mise à jour : 20/02/2007 14:30:14 Vu / téléchargé: 4 350 / 612

Note :
Aucune note

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

Description

Porgramme permettant l'impression de code barre pour les cartouches de sauvegarde DLT et LTO
Pour l'utilisation voir le PDF
 

Conclusion

Je n'ai pas utilisé Rave report car je trouve plus amusant de dessiner soit même les codes barre et je peux ainsi faire des codes de tailles voulues
Les codes barre pour les cartouches DLT IV fonctionnent
pour les LTO j'attends la mise en prod du nouveau robot de sauvegarde
Si vous voulez l'executable voir sur mon site
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • codeDLT.bdsprojTélécharger ce fichier [Réservé aux membres club]8 908 octets
  • codeDLT.dprTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 181 octets
  • codeDLT.resTélécharger ce fichier [Réservé aux membres club]4 616 octets
  • FB_CodeDLT.pdfTélécharger ce fichier [Réservé aux membres club]151 081 octets
  • UfrmMaitre.dfmTélécharger ce fichier [Réservé aux membres club]9 413 octets
  • UfrmMaitre.pasTélécharger ce fichier [Réservé aux membres club]Voir ce fichier35 638 octets

Télécharger le zip

Historique

23 juillet 2006 18:24:05 :
Mise à jour du code des fonctions - TfrmMaitre.getCode - TfrmMaitre.strDepartKeyPress - incValeur selon le remarques de fOxi
23 juillet 2006 18:24:21 :
Mise à jour du code des fonctions - TfrmMaitre.getCode - TfrmMaitre.strDepartKeyPress - incValeur selon les remarques de fOxi
20 février 2007 14:23:40 :
Correction bug de calcul décimal qui passait de 8 à 10
20 février 2007 14:30:15 :
Petite erreur de fichier Zip lors de la derniere MAJ

Commentaires et avis

signaler à un administrateur
Commentaire de f0xi le 22/07/2006 00:37:54 administrateur CS

function TfrmMaitre.getCode( digit : char ) :Tcode ;
var
  index : integer;
const
  CharCase : string = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%';
begin
  index := pos(UpCase(Digit),CharCase);
  if index <> 0 then
     result := TabCode[index]
  else
     raise ERangeError.Create('"'+Digit+'" N''est pas un caractère valide');
end;


tu peu utiliser le type Single qui est bien mieux que le type réel :

TdimCode = record
  Longueur, Hauteur, // longueur Hauteur de l'étiquette (width, height)
  margeL, // marge gauche et droite (MarginLR)
  margeH, // Espace pour le texte (TextSpacing)
  LongueurCode, HauteurCode : single; // longeur,hauteur du code barre (CodeWidth,CodeHeight)
end;


procedure TfrmMaitre.strDepartKeyPress(Sender: TObject; var Key: Char);
begin
  key := upcase(key);
  if not(key in ['A'..'Z', '0'..'9', '-',' ','.','*','$','/','+','%',#8]) then
     key := #0;
end;

ou encore, pour eviter un set trop long

procedure TfrmMaitre.strDepartKeyPress(Sender: TObject; var Key: Char);
const
  CharCase : string = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%';
begin
  key := upcase(key);
  if pos(Key,CharCase) = 0 then
     key := #0;
end;


ta procedure incValeur est trop lourde aussi, y'a moyen de faire plus simple.

procedure incValeur(var strvaleur : string);
var
  c, index : integer;
  digit    : char;
  retenu   : boolean;
const
  CharCase : string = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%';
begin
  retenu := true;
  for c := 7 downto 2 do
      if retenu then begin
         digit  := strvaleur[c];
         retenu := false;
         index  := pos(digit,charcase);
         if index = 0 then
            raise ERangeError.Create('"'+digit+'" N''est pas un caractère valide');
         case index of
           1..8   : digit := charcase[index+1];
           9..15  : if rgIncrementation.ItemIndex = 0 then
                       digit := '0'
                    else
                       digit := charcase[index+1];
           16..35 : if rgIncrementation.ItemIndex <= 1 then
                       digit := '0'
                    else
                       digit := charcase[index+1];
           36     : digit := '0';
           else
             retenu := true;
         end;
         if not retenu then
            retenu := (digit = '0');
         strvaleur[c] := digit;
      end;
end;


la constante CharCase peut etre declarée globalement pour eviter de la recopier a chaque fois.


sinon, ça a l'air pas mal, code bien ecrit et commenté.

signaler à un administrateur
Commentaire de fbalien le 23/07/2006 18:27:16

Merci pour cette analyse fOxi

L’idée du tableau dans le quel chercher le code et très bien je l’avais déjà utilisé mais pour quoi pas ici là je cherche encor pour quoi je me suis compliqué le code comme çà

Dans la fonction Getcode çà pose un problème
Car tabCode va de 0 à 43 vue que index ne peut aller que de 1 à 44 cela crée un code barre erronée
Donc soit on modifie getcode result := TabCode[index-1] ou la déclaration de Tabcode ce que j’ai privilégié  tabCode : array[1..44]of Tcode =...

Par contre tel quel dans la fonction incvaleur çà marche pas
Il faut utiliser string = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%'; en plaçant le 0 en premier

signaler à un administrateur
Commentaire de amiga68 le 25/07/2006 08:14:20

Euh... Ca plante à la compilation (Delphi 7 personal)

Ligne 406 : dessin.TextRect(recTexte ,strtemp);
[Erreur] UfrmMaitre.pas(406): Types incompatibles : 'Integer' et 'String'

Dans l'aide ==> Syntaxe Delphi :
procedure TextRect(Rect: TRect; X, Y: Integer; const Text: string);

Correction : procedure dessin.TextRect(recTexte ,0,0, strtemp); et ça marche !

signaler à un administrateur
Commentaire de fbalien le 25/07/2006 12:17:14

en effet petit souci de compatibilité avec delphi 2005 qui lui autorise
TextRect(Rect: TRect, X: Integer, Y: Integer, const Text: string); et
TextRect(var Rect: TRect, var Text: string, TextFormat: TTextFormat);

par contre en mettant extRect(recTexte ,0,0, strtemp); le texte s'affiche bien ??
car avec delphi 2005 je suis obligé de faire çà TextRect (recTexte ,recTexte.left,recTexte.Top ,strtemp);

signaler à un administrateur
Commentaire de calhoun le 16/08/2006 14:06:54

Je cherche un moyen d'imprimer des codes barre avec le texte en dessous et le motif du code barre de la forme suivante http://193.189.147.16/cmitlse/IMG/jpg/code_barre.jpg.

Il s'agit d'imprimer des codes barre pour un ROBOT de sauvegarde ESL9595.

Merci de votre aide.

signaler à un administrateur
Commentaire de emmanuelt le 10/10/2006 14:56:15

Bonjour,

auriez-vous la version compilée de votre soft qui m'interesse beaucoup ?

merci d'avance

Emmanuel

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Recuperer imprimante selectionnee [ par Tank01 ] Bonjour,Je suis entrain d'implémenter dans un programme, une procedure qui doit lancer un impression. ( jusque la, tout va:d)Avant de lancer cette imp Calage imprimante Matricielle [ par couf ] Bonjour à Tous,  Je vois déja les rires de certains qui vont dire mais c'est quoi ce matérielle de Dinausaure.:-DBref il ya quelques temps j'aurais mo [D7] Lister les résolution d'une imprimante [ par nitrique ] Bonjour à tous, J'arrive à charger les imprimantes installées sur le poste dans une combo de cette manière:for i:=0 to Printer.Printers.Count-1 do b Option Imprimante avec deux Bacs [ par kacola ] Bonjour,J'ai une imprimante Canon MP780 avec deux bacs ( "cassette" - "Chargeur automatique").J'ai besoin d'automatiser l'impression et donc entrer di Comment forcer les options d’impression d’une imprimante pour toutes applications Windows à partir d’un programme Delphi ? [ par neodelphi2008 ] Bonjour,Comment forcer les options d'impression d'une imprimante pour toutes applications Windows à partir d'un programme Delphi ?Je m'explique : dans Vider le cache des imprimantes ? [ par JulioDelphi ] Bonjour à tous,Voici ma situation :J'ai plusieurs imprimantes (réseau et/ou locales, peu importe), dans le panneau de configuration, imprimantes et té qreport et configuration de l'imprimante [ par delaio ] bonjour à tous, quand on appelle la procédure "printsetup" pour afficher la fenêtre de configuration d'imprimante, quickreport ne semble pas gérer les Impression sur canon 4600 [ par BF77170 ] Bonjour,Ma bonne imprimante PIXMA IP4000 m'a laché , helas, je l'ai donc plutot que de changer la tete remplacée par une IP4600, MAIS :sur cette machi Es que c'est possible de supprimer ou renommer une imprimante apartir de delphi [ par bazbazus ] bonjour a tous tous est dans la quesstion merci.


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,856 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.