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

Delphi Discussion :

rediriger tab_key vers enter_key (et pas l'inverse!)


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 478
    Par défaut rediriger tab_key vers enter_key (et pas l'inverse!)
    Bonjour,
    Pour des raisons de contraintes d'utilisateur, une douchette barcode doit être configurée avec un tab_key après le scan.
    Lorsque je scanne un bar code sur un champ edit, ce tab_key devrait en fait ne pas me faire changer de champ mais réaliser un Enter.
    KeyDown:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if key = vk_TAB then button1.Click;
    ou
    KeyDown:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if Key = #9 Then Key := #13;
    J'ai tenté plusieurs autres procédures trouvée sur le web mais sans succès.
    p.ex.:ici
    Si vous avez une suggestion?
    Merci d'avance
    Phil

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 947
    Billets dans le blog
    6
    Par défaut
    Le Edit.OnChange est-il déclenché ? Avant ou après la tabulation ?
    Il faudrait pê essayer de capturer les messages entourant la saisie à la douchette pour voir où et comment agir ?
    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 !

  3. #3
    Membre émérite
    Avatar de Cirec
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 467
    Par défaut
    Bonjour,

    pour cela il faut ruser
    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
    36
    37
    type
      Tfrm_Main = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
        procedure CMDialogKey(var Message: TCMDialogKey); message CM_DIALOGKEY;
      public
        { Déclarations publiques }
      end;
     
     ...
     
    procedure Tfrm_Main.Button1Click(Sender: TObject);
    begin
        MessageDlg('Ici votre traitement.', mtInformation, [mbOk], 0);
    end;
     
     
    procedure Tfrm_Main.CMDialogKey(var Message: TCMDialogKey);
    begin
      with Message do
        if CharCode = VK_TAB then
        begin
          if GetKeyState(VK_CONTROL) >= 0 then
          begin
            Result := 1;
            Button1.Click;
            Exit;
          end;
        end;
      inherited;
    end;
     
    end.
    ceci devrait faire ce que tu demandes

    Cordialement,
    @+

  4. #4
    Membre éclairé
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 478
    Par défaut
    Je tente ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.Intro_prelKeyPress(Sender: TObject; var Key: Char);
    begin
    if  not (Key in ['0'..'9',#13, #9]) then Key := #0;
    if Key = #9 Then Key := #13;
    if (key=#13) OR (key = #9) then button1.Click;      //if key = vk_TAB
    end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.Intro_prelKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
     if key = vk_TAB then button1.Click;
    end;
    la suite est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    if  (length(Intro_prel.Text)=8) AND (pos('2',Intro_prel.Text)=1) then
     begin
    ...

  5. #5
    Membre émérite Avatar de sergio_is_back
    Homme Profil pro
    Consultant informatique industrielle, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique industrielle, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 193
    Par défaut
    Perso je préfère utiliser "les douchettes" en mode émulation port série, cela donne un contrôle plus fin... On peut découper le code, le placer dans le champ ha doc même si ce dernier n'a pas le focus, faire des vérifications préalables et rejeter un code non-conforme, etc... C'est beaucoup plus souple...

    Et la plupart savent le faire... Après si ça dépend de l'existant (du passif)

  6. #6
    Membre Expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Par défaut
    Attention à la tabulation, elle est parfois interceptée avant de nous donner la main, du coup selon si on est en VCL ou FMX le résultat ne sera pas le même ni faisable.

  7. #7
    Membre émérite
    Avatar de Cirec
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 467
    Par défaut
    Citation Envoyé par pprem Voir le message
    Attention à la tabulation, elle est parfois interceptée avant de nous donner la main, du coup selon si on est en VCL ou FMX le résultat ne sera pas le même ni faisable.
    bonjour,

    c'est exactement ce que permet le bout de code que j'ai posté plus haut (pour la VCL)

    Cordialement,
    @+

Discussions similaires

  1. ACL TCP de vlan 11 vers Vlan 2 mais pas l'inverse
    Par flo331492 dans le forum Hardware
    Réponses: 1
    Dernier message: 22/10/2015, 16h08
  2. [Eclipse 3.1][Plugin] Rediriger sortie vers la console
    Par petitpepito dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 19/01/2006, 00h37
  3. FIREFOX chemin absolu vers images (fctionne pas??)
    Par valal dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 21/10/2005, 20h08
  4. Réponses: 6
    Dernier message: 19/09/2005, 13h55
  5. Rediriger cerr<< ver un MessageBox
    Par philippe V dans le forum C++
    Réponses: 3
    Dernier message: 22/12/2004, 17h23

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