begin process at 2008 08 29 21:25:15
1 233 885 membres
407 nouveaux aujourd'hui
14 294 membres club

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é: 3 489 / 571

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
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

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
  • 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

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

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

Boutique

Boutique de goodies CodeS-SourceS