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

Composants FMX Delphi Discussion :

[Rio] Lecture de code barre [Windows]


Sujet :

Composants FMX Delphi

  1. #1
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 175
    Points : 41 367
    Points
    41 367
    Billets dans le blog
    63
    Par défaut [Rio] Lecture de code barre
    Bonjour,

    jusque là je n'avais aucun souci avec ce truc mais je tombe sur un os, dans une application,
    qui fonctionne bien sous windows 10,
    Nom : Capture.PNG
Affichages : 169
Taille : 5,7 Ko

    la lecture ne se fait pas sous xp (aucun caractère affiché)
    J'ai tout d'abord pensé à un problème de douchette mais le scan se fait parfaitement dans un notepad ou dans une application VCL plus ancienne.

    J'ai alors écrit un programme simple (zone de saisie, memo)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm130.Edit1Exit(Sender: TObject);
    begin
    memo1.Lines.Add(Edit1.text);
    Edit1.Text:='';
    Edit1.SetFocus;
    end;
    Mais là, en testant avant d'envoyer, j'ai un probléme avec le SetFocus qui n'opére pas (difficile alors de faire un test sur le poste XP !)

    Jusqu'à ce que je m'apperçoive que je code ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm130.Edit1KeyDown(Sender: TObject; var Key: Word;
      var KeyChar: Char; Shift: TShiftState);
    begin
    if (Key=13) or (Key=9) then
     begin
       memo1.Lines.Add((Sender As TEdit).text);
       Key:=0;
       Edit1.Text:='';
       Edit1.SetFocus;
     end;
    end;
    c.a.d sur OnKeyDown et non sur un OnExit (en utilisant KillFocusByReturn à true)

    Questions :
    en FMX, à quoi sert le OnExit et KillFocusByReturn ?
    Dans le cas d'un OnExit pourquoi setfocus ne fonctionne t-il pas ?
    mon problème avec XP pourrait-il être lié ? Comment puis-je m'en dépatouillé (à part bien sûr installé w10 sur le poste )?

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 457
    Points
    28 457
    Par défaut
    bonjour,

    à priori KillFocusByReturn concerne le clavier virtuel, donc rien à voir.

    ce qui est surprenant c'est que cela fonctionne sous W10 et pas XP...en même temps ça fait bien longtemps qu'il n'y a plus de tests pour XP....

    tu peux tenter un ControlStyle Platform, car en mode Styled TEdit n'est pas un composant Windows, c'est la fiche qui reçoit les évènements et les dispatche aux composants, en mode Platform on s'approche de ce que fait la VCL et c'est directement le TEdit qui traite les messages Windows.

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 175
    Points : 41 367
    Points
    41 367
    Billets dans le blog
    63
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    à priori KillFocusByReturn concerne le clavier virtuel, donc rien à voir.
    Ah, je n'avais pas fait attention à ça

    ce qui est surprenant c'est que cela fonctionne sous W10 et pas XP
    A qui le dis-tu, c'est vraiment c...t de se retrouver dans cette position à j-6 de l'ouverture du magasin usine !

    tu peux tenter un ControlStyle Platform,
    Je crois bien que tu as mis le doigt dessus
    je viens de faire un essai sur mon poste w10, il y a bien un son en plus mais le setfocus fonctionne dans ce cas

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 175
    Points : 41 367
    Points
    41 367
    Billets dans le blog
    63
    Par défaut
    Gag de l'histoire, je me suis fait des cheveux (j'aimerais bien) pour rien !
    une reconfiguration de la douchette et plus de problème de scan

    Merci de l'attention.
    J'ai quand même retenu ce controlstyle := platform cela pourrait servir
    et il va falloir que j'investigue sur ce KillFocusByReturn

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 638
    Points : 25 357
    Points
    25 357
    Par défaut
    Si tu avais un TAB à la place d'un ENTER, si tu avais plusieurs contrôles, ça devait passer au suivant selon le TabOrder (ou l'équivalent FMX)
    D'ailleurs, j'ai souvent codé un EnterAsTab pour faciliter la frappe continue des utilisateurs

    Dans l'aide, c'est Abort qui est recommandé pour abonner le traitement du OnExit :

    Citation Envoyé par Description
    Se produit quand la focalisation d'entrée sort du contrôle.

    OnExit se produit également lorsque DoExit est appelé.

    Ecrivez un gestionnaire d’événement pour OnExit pour spécifier ce qui arrive lorsque le contrôle perd la focalisation d'entrée.

    Remarque: Par exemple, dans un contrôle TEdit, vous pouvez empêcher l'utilisateur de quitter le contrôle tant qu'une certaine valeur n'a pas été saisie. Cela peut être réalisé avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.Edit1Exit(Sender: TObject);
    begin
      if Edit1.Text <> 'Hello' then
       Edit1.Abort;
    end;
    Remarquez que du code comme Edit1.SetFocus; n'a pas l'effet escompté.
    Contrairement à la VCL où le OnExit se produit lorsque l'on a déjà perdu le focus, en FMX cela se produit semble-t-il juste avant pour le contrôle stylé alors que le comportement du contrôle de plateforme se rapproche à celui de la VCL

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/10/2006, 18h40
  2. Lecture de codes barres et port PS2
    Par chkdsk2k dans le forum Entrée/Sortie
    Réponses: 14
    Dernier message: 03/08/2006, 22h19
  3. Lecture de code à barre
    Par Yanmeunier dans le forum Access
    Réponses: 5
    Dernier message: 29/05/2006, 10h41
  4. Impression et lecture de code barre
    Par Michel DELAVAL dans le forum Access
    Réponses: 1
    Dernier message: 10/05/2006, 08h57
  5. Lecture de code barre
    Par Yanmeunier dans le forum C
    Réponses: 7
    Dernier message: 22/09/2005, 15h05

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