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 038
    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 038
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    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 : 152
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 )?
    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

  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 : 54
    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 430
    Points
    28 430
    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.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 038
    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 038
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    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
    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

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 038
    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 038
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    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
    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

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    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 455
    Points : 24 867
    Points
    24 867
    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
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

+ 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