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

Lazarus Pascal Discussion :

Maîtriser le focus dans un formulaire de saisie [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 179
    Points
    179
    Par défaut Maîtriser le focus dans un formulaire de saisie
    Bonjour à tous,

    J'ai récemment mis à jour un logiciel (base de données -sqlite3) que j'avais fait il y a quelques temps. L'interface graphique de saisie contient bien sur des contrôles TDBEDIT, TDBComboBox etc..
    IL se trouve que lors de la saisie, lorsque je clique sur la souris pour sélectionner un contrôle manuellement, le focus n'est effectif sur le contrôle souhaité que lorsque l'ordre "naturel" de parcours défini par la propriété TAB des contrôles a été exécuté ce qui est gênant car en principe, j'impose le focus vers un contrôle choisi sur l'évènement Exit ou KeyPRess (touche entrée #13) du contrôle (expl après avoir entré NOM je veux que le focus soit mis sur Prénom et pas sur une date).
    Comment désactiver le déplacement automatique et incontrôlé du focus, sachant que j'ai essayé de jouer sur la propriété TabStop sans succès (ce qui est normal vu la fonction de cette propriété) ?
    Je vous prie de m'excuser pour le côté confus de la question qui en un mot est : Comment avoir la parfaite maitrise du focus dans un formulaire de saisie ?

    Merci d'avance pour vos réponses.
    R.O.

  2. #2
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 384
    Points : 9 745
    Points
    9 745
    Par défaut
    Bonjour,

    Je n'ai jamais eu ce genre de problème (que ce soit avec Lazarus ou un autre logiciel). Ce ne serait pas, justement, des ordres de déplacement en sortie de champs qui font que le focus ne va pas là où il devrait ? Si, par exemple, tu es dans le champ "Nom", que tu cliques sur le champ "Date de naissance", mais que dans le code de sortie du champ "Nom", il y a un "SetFocus(prenom)", ben, le focus sera sur le champ "Prénom", et non le champ "Date de naissance".

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 179
    Points
    179
    Par défaut a/s problème de focus sur un contrôle
    Bonjour J. Shannon et merci pour la réponse.
    En fait j'ai du mal m'exprimer. Le problème est le suivant :
    Supposons que j'ai 5 contrôles sur ma feuille : C1, C2... C5.
    Par code sur les évènements en sortie (Exit) et/ou Keypress #13 (touche enter) je gère bien le passage automatique vers le contrôle qui m'intéresse par exemple C2 en sortie de C1 mais, si je m'aperçois, après avoir entré une valeur en C2 que j'ai fait une erreur de saisie sur C1 et que je veux la corriger, je place, avec la souris, le curseur sur C1 et fiat un clic pour valider le placement. Au lieu de valider la position du curseur sur C1, celui-ci se positionne en C3, puis C4 (nouveau clic) puis C5 (encore un clic) avant que je puisse revenir à C1 .
    Ce que je souhaite c'est que, lorsque je positionne le curseur sur C1 celui ait effectivement le focus quand je clique (gauche) avec la souris car, si j'ai une quinzaine de contrôles sur ma feuille cela fait pas mal de clics avant de revenir à la position qui m'intéresse.
    Bien sur, je peux définir des groupes sur mon formulaire de saisie pour limiter le nombre de sauts avant le retour à la bonne case mais n'y a-t'il pas une solution bien plus pratique ? c'est la question que je posais en demandant comment désactiver le saut automatique du curseur.

    Cordialement

    R.O.

  4. #4
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 384
    Points : 9 745
    Points
    9 745
    Par défaut
    Ce que je ne comprends pas dans ton explication, c'est le fait de "gérer" les passages automatiques.

    S'ils sont automatiques, il n'y a rien à gérer ! Le programme suit l'ordre des tabulations. Et si tu cliques sur un champ, ce dernier prend le focus. Le seul truc qui peut empêcher le champ cliquer de prendre le focus, c'est qu'il y ait un code forçant le focus vers un autre champ lors de la sortie du champ ayant le focus avant le clic.

    Je ne vois pas d'autres explications.

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 179
    Points
    179
    Par défaut a/s Focus
    Bonjour John,

    Vos remarques m'ont mis sur la voie de la solution En effet, par soucis de bien faire, je mettais systématiquement une notification du focus sur l'évènement EXIT d'un contrôle et sur l'évènement KEYPRESS (pour Key = Enter soit #13) or, en cliquant sur la souris je faisais automatiquement s’exécuter l’événement EXIT et donc modifiait le Focus. J'ai donc limité les modifications du Focus au seul appui sur la touche enter et supprimé les déclenchements sur EXIT ce qui a résolu mon problème.
    Merci pour la piste
    Cordialement
    R.O.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/08/2009, 12h24
  2. Trouver l'item qui a le focus dans un formulaire
    Par troumad dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/12/2007, 13h40
  3. Réponses: 1
    Dernier message: 06/05/2007, 15h25
  4. Réponses: 4
    Dernier message: 23/04/2006, 21h27
  5. Ordre de passage du focus, dans un formulaire
    Par Smint dans le forum Access
    Réponses: 4
    Dernier message: 24/09/2005, 11h53

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