IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Installation du paquet ZXING (QRCODE) [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 109
    Points : 45
    Points
    45
    Par défaut Installation du paquet ZXING (QRCODE)
    Bonjour,

    J'aimerais bien installer le paquet ZXING dans mon Lazarus 2.0.12.
    Mais je me heurte à deux problèmes que je n'arrive pas à résoudre. Je manque de connaissances en Lazarus.

    Adresse internet :
    https://github.com/cutec-chris/ZXing.Lazarus
    pour télécharger :
    ZXing.Lazarus-master.zip
    ----

    1) Problème 1 : un problème de compilation

    Dans EDI de Lazarus :
    "Fichier ouvrir" :
    l:\Lazarus\Compo_Inst\ZXing\laz_zxing.lpk
    "Fichier/Ouvrir le paquet" puis "Compiler"
    Ereur avertissement ligne 50 : function GetHashCode: Integer; override;
    Constructor should be public
    Le constructeur doit être public
    Bitmatrix Error : There is no method in an ancestor class to be overridden: "GetHashCode:Longint;"
    Il n'y a aucune méthode dans une classe ancêtre à remplacer: "GetHashCode:Longint;"
    2) Problème 2 : "Register" absent mais peut-être ceci est lié au premier problème

    Dans EDI de Lazarus :
    "Utiliser" puis "Installer" le paquet
    Le paquet laz_zwing n'a aucune procédure "Register", ce qui signifie qu'il ne fournit aucune fonctionnalité nouvelle à l'EDI.
    L'installation va probablement augmenter la taille de l'EDIT et pourrait même le rendre instable.
    Conseil : si vous voulez utiliser un paquet dans votre projet, utilisez l'élément du menu intitulé "Ajouter au projet"

    Si quelqu'un pouvait m'aider, d'avance merci.

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 132
    Points
    15 132
    Par défaut
    Bonjour,
    Citation Envoyé par dennler Voir le message
    Adresse internet :
    https://github.com/cutec-chris/ZXing.Lazarus

    Si quelqu'un pourrait pouvait m'aider, d'avance merci.
    1) je ne sais pas pourquoi il y a "Lazarus" dans l'adresse, mais suivre le lien amène à une page où c'est écrit en gros "Delphi",
    Je n'ai pas creusé plus loin.

    2) faudrait poser tes questions à l'auteur de l'outil car pas sûr qu'ici quelqu'un connaisse.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Membre éprouvé Avatar de der§en
    Homme Profil pro
    Chambord
    Inscrit en
    Septembre 2005
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chambord
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2005
    Messages : 765
    Points : 960
    Points
    960
    Par défaut
    Ha mince, notre Jipété préféré, est d'humeur chafouine aujourd'hui

    Si tu regarde bien sur la page (du lien) en fait il y a les 2, pour Delphi et Lazarus...

    J'ai télécharger les sources, et je vais regarder de mon coté, si je comprend un peu le bousin !

  4. #4
    Membre éprouvé Avatar de der§en
    Homme Profil pro
    Chambord
    Inscrit en
    Septembre 2005
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chambord
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2005
    Messages : 765
    Points : 960
    Points
    960
    Par défaut
    Première tentative de compilation:

    Même erreur dans la classe TBitMatrix sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function GetHashCode: Integer; override;
    Ce qui me semble normal si on regarde la classe parent, soit TObject :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function GetHashCode: PtrInt;virtual;

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 109
    Points : 45
    Points
    45
    Par défaut Suite
    Merci pour cette première réponse.
    Questions :
    1) Le paquet est-il tout de même compilé ?
    2) Ou et comment rajouter la partie "Register"
    D'avance merci

  6. #6
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 953
    Points : 9 283
    Points
    9 283
    Par défaut
    hello,
    il y a une version plus récente de Zxing.Delphi pour Lazarus chez LongDirtyAnimAlf/ZXing.Delphi
    en particulier il y a ce commentaire dans le dernier commit qui date d'il y a 8 mois : Restore FPC and Lazarus compilation
    LongDirtyAnimAlf est le créateur de fpcupdeluxe.
    Le souci avec ce projet c'est qu'il n'y a pas de package mais l'ensemble des fichiers.
    Il y a un autre souci à la compilation voir ici : generic TList not working with Enumerated type with constant assignment
    Une fois tout résolu le projet qui se trouve dans le répertoire Lazarus/UnitTest fonctionne (windows 10 lazarus 2.0.12 fpc 3.2)
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  7. #7
    Membre éprouvé Avatar de der§en
    Homme Profil pro
    Chambord
    Inscrit en
    Septembre 2005
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chambord
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2005
    Messages : 765
    Points : 960
    Points
    960
    Par défaut
    Merci pour le lien.

  8. #8
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 953
    Points : 9 283
    Points
    9 283
    Par défaut
    j'ai rajouté à la fin du projet de test, un test du QR code généré dans l'attestation COVID à télécharger pour voir si cela fonctionnait.
    voici ce que cela donne :

    Nom : LazZxing.png
Affichages : 702
Taille : 65,7 Ko

    Je retrouve bien ce que j'avais rempli pour l'attestation

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  9. #9
    Membre éprouvé Avatar de der§en
    Homme Profil pro
    Chambord
    Inscrit en
    Septembre 2005
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chambord
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2005
    Messages : 765
    Points : 960
    Points
    960
    Par défaut
    Encore merci du retour, je vais surement trouvé des trucs amusant a faire avec ceci

  10. #10
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Top, l'attestation jurassique !
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 109
    Points : 45
    Points
    45
    Par défaut Suite
    Merci pour toutes ces réponses.
    Mon niveau en lazarus est encore trop faible pour obtenir avec vos réponses le même résultat.
    J’ai téléchargé la version plus récente LongDirtyAnimAlf/ZXing.Delphi avec des fichiers du 17/7/2020.
    Mais je tombe toujours sur l’erreur de compilation TBitMatrix
    Pouvez-vous me donner les modifications à apporter pour contourner cet obstacle ?
    Deuxième question : pour transformer ces fichiers et obtenir un paquet , comment faire ? Rajouter à la main la procédure Register dans chaque fichier, ou existe-t-il une solution automatique du type "conversion Delphi vers Lazarus" ?
    Encore merci pour tout.

  12. #12
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 953
    Points : 9 283
    Points
    9 283
    Par défaut
    hello,
    c'est bizarre ce problème de TBitMatrix car j'utilise la même version de Lazarus que toi. As-tu désinstallé le paquet laz_zxing avant de compiler les fichiers de cette mouture de zxing.
    [EDIT] Pour le problème de compilation que j'ai eu LongDirtyAnimAlf m'a répondu dans le forum anglais : il faut compiler deux fois (compile not build) ! Pas besoin de modifier le code !
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  13. #13
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 343
    Points : 536
    Points
    536
    Billets dans le blog
    2
    Par défaut Autre générateur de QRCodes: LazBarCodes

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 109
    Points : 45
    Points
    45
    Par défaut Suite
    Bonjour,
    Grâce à vos aides j’ai pu compiler le programme vfwscanner .
    En réalité je cherche un composant gratuit capable de « décoder » un QRCode (BMP ou PNG vers du texte). Il me semblait que ZXing possède cette fonctionnalité mais peut-être que pour la version DX d’Enbarcadero.
    En tant que programmeur amateur le DX est hors de prix pour moi, c’est pourquoi je me contente de Delphi 7 et Lazarus.

  15. #15
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 953
    Points : 9 283
    Points
    9 283
    Par défaut
    hello,
    regarde bien mon message du post #8 : La version zxing de LongDirtyAnimAlf décode bien le QR code présent dans des images. Le projet que j'ai utilisé se trouve dans le répertoire Lazarus\UnitTest du zxing de LongDirtyAnimAlf et s'appelle dUnitXTestGUI.lpi.

    Ami calmant,J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 109
    Points : 45
    Points
    45
    Par défaut Suite
    Super, grand merci à vous Jurassic pork, tout fonctionne.
    Il suffisait de bien lire vos recommandations.

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 109
    Points : 45
    Points
    45
    Par défaut Suite
    C’est encore moi, avec toujours des questions.
    1) Lors de l’exécution du programme dUnitXTestGUI-x86_64-win64.exe compilé avec Lazarus sous Windows 10 j’ai sur la plus part des fichiers .png fournis, souvent 4 gros points rouges ou verts d’une manière aléatoire sur l’image. Alors qu’avec le même programme récupéré dans le fichier TEST.ZIP du 7/7/2018 compilé je suppose sur DX, cela n’est pas visible. Pourquoi ?
    2) Je croyais être capable de modifier la source du bouton de test pour le remplacer par OpenPictureDialog qui chargerait un fichier image pour l’afficher et surtout le décoder.
    Mais je bute sur la compréhension du fichier Test.pas
    D'avance merci.

  18. #18
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 953
    Points : 9 283
    Points
    9 283
    Par défaut
    hello,
    Citation Envoyé par dennler Voir le message
    C’est encore moi, avec toujours des questions.
    1) Lors de l’exécution du programme dUnitXTestGUI-x86_64-win64.exe compilé avec Lazarus sous Windows 10 j’ai sur la plus part des fichiers .png fournis, souvent 4 gros points rouges ou verts d’une manière aléatoire sur l’image. Alors qu’avec le même programme récupéré dans le fichier TEST.ZIP du 7/7/2018 compilé je suppose sur DX, cela n’est pas visible. Pourquoi ?
    2) Je croyais être capable de modifier la source du bouton de test pour le remplacer par OpenPictureDialog qui chargerait un fichier image pour l’afficher et surtout le décoder.
    Mais je bute sur la compréhension du fichier Test.pas
    D'avance merci.
    pour le point 1 c'est normal car comme c'est un module de test il y a des points rouges et verts qui s'affichent suivant qu'il y a des problèmes avec les QR codes de test qui peuvent contenir des erreurs.
    Dans la fonction TZXingLazarusTest.Decode de Test.pas c'est ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
              {$ifdef Debug}
              if (aResult.rawBytes=nil) AND ((aResult.BarcodeFormat=TBarcodeFormat.DATA_MATRIX) OR (aResult.BarcodeFormat=TBarcodeFormat.QR_CODE))  then
              {$else}
              if false then
              {$endif}
              bmp.Canvas.Brush.Color := clRed else
              begin
                bmp.Canvas.Brush.Color := clLime;
              end;
              bmp.Canvas.Brush.Style := bsSolid;
              bmp.Canvas.Pen.Width   := 1;
              bmp.Canvas.Pen.Color   := clBlack;
              for ResultPoint in aResult.ResultPoints do
              bmp.Canvas.Ellipse(TRect.Create(Round(ResultPoint.x - 5),
                                                 Round(ResultPoint.y - 5),
                                                 Round(ResultPoint.x + 5),
                                               Round(ResultPoint.y + 5)));
            end;
    Pour le point 2 Avec ce code cela devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    uses testutils,
      ZXing.ReadResult,
      ZXing.ResultPoint,
      ZXing.BarCodeFormat,
      ZXing.DecodeHintType,
      ZXing.ScanManager;
     
    { TForm1 }            
    ....
    procedure TForm1.Button2Click(Sender: TObject);
    var
      Filename: string;
      aScanresult: TReadResult;
      ScanManager: TScanManager;
    begin
    if OpenDialog1.Execute then
    begin
      Filename := OpenDialog1.Filename;
      Edit1.Text := ExtractFileName(FileName);  
      Image1.Picture.LoadFromFile(Filename);
       try
          ScanManager := TScanManager.Create(TBarcodeFormat.QR_CODE, nil);
          aScanResult := ScanManager.Scan(Image1.Picture.Bitmap);
            if Assigned(aScanResult) then
            begin
              Memo1.Lines.Append(aScanResult.text);
              Memo1.Invalidate;
            end;
       finally
          FreeAndNil(ScanManager);
       end;
    end;
     
    end;
    Résultat :

    Nom : lazarusXzing.jpg
Affichages : 592
Taille : 88,1 Ko



    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 109
    Points : 45
    Points
    45
    Par défaut Suite
    Super, tout fonctionne.
    Je mesure toute la différence entre un petit amateur comme moi et un professionnel.
    Merci pour tout.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Installer des paquets debian
    Par ready dans le forum Debian
    Réponses: 3
    Dernier message: 10/12/2005, 01h32
  2. [Lazarus] Installation du paquet indy4lazarus
    Par Leobaillard dans le forum Lazarus
    Réponses: 4
    Dernier message: 18/11/2005, 07h22
  3. [2005 PE] Installation de paquet impossible
    Par dacid dans le forum Delphi .NET
    Réponses: 6
    Dernier message: 19/10/2005, 14h41
  4. Installer un paquet
    Par Thrystan dans le forum Debian
    Réponses: 6
    Dernier message: 20/04/2005, 12h58
  5. Installer un paquet Debian sous Mandrake
    Par Tellmarch dans le forum Mandriva / Mageia
    Réponses: 3
    Dernier message: 26/08/2004, 23h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo