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 :

Changer le Focus après une durée de temps


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 52
    Points : 37
    Points
    37
    Par défaut Changer le Focus après une durée de temps
    Salut à tous, bref je développe une petite application pour un PDA (collecteur avec code à barre) : j'ai deux champs de texte "TEdit" .. le premier sert à lire le code à barre et le 2éme sert à insérer la quantité .. Ce que je veux faire c'est de changer le focus pour le 2eme TEdit après avoir lu le code : j'ai utilisé un TTimer qui change le focus après une seconde mais le problème c'est l’événement déclenchant !! j'ai utilisé "OnChange" du TEdit mais sans efficacité car dés que je lance l'application il change le focus après une seconde !! quoi faire SVP !

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2012
    Messages : 111
    Points : 171
    Points
    171
    Par défaut
    bon jour
    pas besoin d'un ttimer
    utiliser le KeyDown de tedit1 comme suite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
    if key = VK_return then edit2.SetFocus;
    end;
    si vous rentrer le code barre avec le lecteur de code barre le KeyDown se déclanche automatiquement sinon vous tapez entrer


    a+

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    lorsque j'essai ton code j'obtiens cet erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unit1.pas(36,22) Error: Identifier not found "VK_return"

  4. #4
    Fxg
    Fxg est déconnecté
    Membre éclairé
    Homme Profil pro
    ingénieur financier
    Inscrit en
    Septembre 2003
    Messages
    510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur financier

    Informations forums :
    Inscription : Septembre 2003
    Messages : 510
    Points : 837
    Points
    837
    Par défaut
    Est ce que tu as inséré l'unité Windows ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    j'ai ajouté Windows dans Uses et j'ai corrigé l'erreur syntaxique .. mais le problème n'est pas résolu : après la lecture du code à barre le curseur n'avance pas vers le 2eme Edit mais il attend l'appui sur la touche Entré

  6. #6
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Si j'ai bien compris, ce code barre n'est pas saisi mais il est lu par un appareil.

    Dans ce cas précis, lje ne suis pas certain (c'est peu-être une aburdité) que KeyPress soit déclenché puisque le clavier n'intervient pas directement. Il faut bien utiliser le OnChange comme tu l'a fait mais sans le timer (ou si tu tient absolument à utiliser un timer, l'activer uniquement dans le OnChange et le désactiver dès que c'est fait).

    Là où tu risques d'être embêté (il faudrait tester) c'est si tu permets également la saisie de ce code barre avec le clavier car le OnChange risque d'être déclenché dès le premier caractère saisi. Dans ce cas là, je te suggère d'avoir un bouton pour activer et désactiver la saisie par le clavier (si la saisie par le clavier n'est pas active tu mets la valeur #0 dans le Key, et ton OnChange ne se déclenchera pas)

    S'il est réellement intecepté comme une touche clavier, je te suggère d'utiliser le VK_TAB en lieu et place du VK_RETURN

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 694
    Points : 13 130
    Points
    13 130
    Par défaut
    Citation Envoyé par VB 2008 Voir le message
    j'ai ajouté Windows dans Uses et j'ai corrigé l'erreur syntaxique .. mais le problème n'est pas résolu : après la lecture du code à barre le curseur n'avance pas vers le 2eme Edit mais il attend l'appui sur la touche Entré
    Si VK_RETURN (ou #13) n'est pas envoyé, c'est que le scanner n'est pas configuré pour le faire. Sa configuration est la première chose à contrôler

  8. #8
    Membre averti Avatar de Moez.B
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Mars 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 219
    Points : 370
    Points
    370
    Par défaut
    Salut,

    Si j'ai bien compris, un petit cas d'utilisation :


    1. L'utilisateur scanne le produit et récupère son code. La saisie se fait automatiquement dans le premier TEdit.
    2. Une fois la saisie est faite, il y a un passage au deuxième TEdit pour la saisie de la quantité.

    Je vois que tu as recours à (comme a mentionné Andnotor ) à une configuration du scanner. Ensuite, tu as une méthode (service de la classe du scanner) qui va retourner un booléen suivant si la lecture du code à barre est bien réalisée. Si la méthode renvoie VRAI, alors le SetFocus du 2ème TEdit est appelé sinon, on bloque (on ne peut pas faire un passage de focus pour saisir une quantité d'un produit inconnu !).
    Bonne journée
    "L'homme supérieur est celui qui a une bienveillance égale pour tous, et qui est sans égoïsme et sans partialité." [Confucius]
    "Celui qui n'évolue pas disparaît." [Charles Darwin]
    “Without requirements or design, programming is the art of adding bugs to an empty text file.” [Louis Srygley]

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/05/2010, 22h34
  2. Réponses: 5
    Dernier message: 29/04/2009, 23h31
  3. [Scheduling] Déclenchement après une durée
    Par joseph_p dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 25/08/2008, 19h59
  4. changer le currentdb après une copie
    Par koyot3 dans le forum VBA Access
    Réponses: 4
    Dernier message: 16/07/2008, 11h14
  5. Changer le code apres une migration HF ->mysql
    Par phebus29 dans le forum WinDev
    Réponses: 1
    Dernier message: 23/06/2006, 19h20

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