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

Langage Delphi Discussion :

Problème lecture codebarre


Sujet :

Langage Delphi

  1. #1
    Membre confirmé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    520
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 520
    Points : 543
    Points
    543
    Par défaut Problème lecture codebarre
    Bonjour,
    J'ai une application dans laquelle l'utilisateur saisit des données à l'aide d'un scanner code barre (douchette) configurée en clavier.

    Sur une appli développée avec D7, pas de problème. sur XE3, la zone de saisie reste vide. J'ai constaté que la douchette envoie le code #0 en début de ligne, sauf erreur de ma part, c'est le caractère de terminaison d'un pChar.
    Si on réinitialise la douchette, j'arrive à l'utiliser. J'ai l'impression que ce problème est dû au fait que l'appli sur XE3 est en unicode.
    Le client ne veut pas modifier le réglage des douchetttes qui sont utilisées sur d'autres appli.
    1ère question: la piste unicode vous semble-t'elle plausible?
    2ème question: comment contourner le pb, sachant que lors de l'interception du keychar dans onkeyup, le caractère a déjà été "lu" et intégré dans Tedit.text. Même en essayant de réinitialiser la propriété text, ça ne fonctionne pas
    7 fois à terre, 8 fois debout

  2. #2
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    Bonjour,

    Citation Envoyé par Higgins Voir le message
    2ème question: comment contourner le pb, sachant que lors de l'interception du keychar dans onkeyup, le caractère a déjà été "lu" et intégré dans Tedit.text. Même en essayant de réinitialiser la propriété text, ça ne fonctionne pas
    essaye plutôt onKeyPress ouOnKeyDown.

    @++
    Dany

  3. #3
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 693
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 693
    Points : 13 128
    Points
    13 128
    Par défaut
    Si tu as laissé ta variable en string en passant de D7 à XE3, sûr qu'elle est en unicode. Rien ne t'empêche de la déclarer en ansistring.

    ps : on testera plutôt le caractère de fin envoyé par le scanner (en règle générale VK_RETURN, #13) que la fin de chaîne "Delphi" #0.

  4. #4
    Membre confirmé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    520
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 520
    Points : 543
    Points
    543
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Si tu as laissé ta variable en string en passant de D7 à XE3, sûr qu'elle est en unicode. Rien ne t'empêche de la déclarer en ansistring.
    Il ne s'agit pas d'une variable, mais d'un composant TEdit. du coup, je suis effectivement sûr qu'il est en unicode, mais je ne sais pas si c'est la cause du problème.
    Citation Envoyé par Andnotor Voir le message
    ps : on testera plutôt le caractère de fin envoyé par le scanner (en règle générale VK_RETURN, #13) que la fin de chaîne "Delphi" #0.
    C'est effectivement ce que je fais. Le pb est que la chaine commence par #0 donc systématiquement TEdit.text=''

    J'ai bien pensé à intercepter les évènemnts on keyDown ou on keyPress à la place mais je n'ai pas eu beaucoupe de succès
    7 fois à terre, 8 fois debout

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour ,
    Intrigué , j'ai fait un essai avec XE4 (un simple TEdit et un Messagedialog pour le résultat) en FMX pas de soucis le scan est OK

    Tu n'indiques pas quel type de code barre , j'ai fait un essai avec du EAN128
    je garde au chaud pour d'autres au cas où
    Tu n'indiques pas non plus le type de poste (OS) le test a été fait avec un Vista donc 32 bits à l'occasion je peut faire un essai avec un Seven 64 bits pas trop loin de chez moi
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Membre confirmé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    520
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 520
    Points : 543
    Points
    543
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bonjour ,
    Intrigué , j'ai fait un essai avec XE4 (un simple TEdit et un Messagedialog pour le résultat) en FMX pas de soucis le scan est OK
    Chez moi aussi ça marche, avec un lecteur correctement configuré
    Le problème est que le client utilise une configuration spéciale (pour d'autres applis) qui envoi un chr(0) en début de chaine

    Citation Envoyé par SergioMaster Voir le message
    Tu n'indiques pas quel type de code barre , j'ai fait un essai avec du EAN128
    je garde au chaud pour d'autres au cas où
    Tu n'indiques pas non plus le type de poste (OS) le test a été fait avec un Vista donc 32 bits à l'occasion je peut faire un essai avec un Seven 64 bits pas trop loin de chez moi
    C'est du code 39, testé sur Win XP 32bits et W7 pro 64 bits avec le même résultat.
    Pour être franc, j'ai laissé un peu le pb en stand-by (d'autres priorités).
    Je laisse le post ouvert car je vais m'y remettre ds quelques jours. Je vous tiendrai au courant
    7 fois à terre, 8 fois debout

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Higgins Voir le message
    Chez moi aussi ça marche, avec un lecteur correctement configuré
    Le problème est que le client utilise une configuration spéciale (pour d'autres applis) qui envoi un chr(0) en début de chaine

    C'est du code 39, testé sur Win XP 32bits et W7 pro 64 bits avec le même résultat.
    Ah, je comprends mieux la problématique ! Dans ce cas il va falloir lire si possible le buffer de clavier , (j'ai eu un cas où il fallait que je le fasse seulement c'était fin du siècle dernier , il faut que je recherche ce bout de code dans mes archives , pas évident , j'ai changé 2 fois de PC depuis ....)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 13h15
  2. [SAX] Problème lecture fichier xml
    Par BernardT dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 07/07/2005, 18h11
  3. [communication série] problème lecture/écriture
    Par davinout dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 01/06/2005, 13h14
  4. Problème lecture fichier en C++
    Par cali1983 dans le forum C++
    Réponses: 17
    Dernier message: 20/05/2005, 09h36
  5. Problème lecture de nombre dans un fichier en c++
    Par knecmotet dans le forum C++
    Réponses: 1
    Dernier message: 28/10/2004, 15h48

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