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 :

Un bouton qui prend le focus


Sujet :

Delphi

  1. #1
    Membre habitué Avatar de Ludo_360
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 295
    Points : 191
    Points
    191
    Par défaut Un bouton qui prend le focus
    bonjour,

    je ne trouve pas la propriété qui permet, lorsque l'on tape sur la touche entrée, de clicker sur un bouton précis.
    (ex: google : un TEdit pour taper les mots à chercher, puis quand on tape sur entrée on lance la recherche)

    ludo

  2. #2
    Membre actif
    Profil pro
    DEV
    Inscrit en
    Août 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DEV

    Informations forums :
    Inscription : Août 2006
    Messages : 182
    Points : 211
    Points
    211
    Par défaut
    Dans le OnKeypress de ton TEdit tu teste si la touche est entrée (#13)
    et tu lances la procédure du OnClick de ton bouton

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Procedure TForm1.MonTEdit1OnKeyPress(Sender: TObject; var Key: Char);
    Begin
       If Key = #13 Then BtClick(Self);
    End;

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    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 586
    Points : 25 254
    Points
    25 254
    Par défaut
    ne confond pas Focus, Click et Gestionnaire de l'Evènement OnClick (ce que tu utilise DragonHeart est l'event pas la procédure click ...)


    d'ailleurs, on ne peut pas faire plus simple MyButton.Click(); .. c'est quand même facile !

    Ensuite Mettre Self comme Sender est faux, il vaut mieux mettre le Bouton, car si on a le même event pour plusieurs boutons (création dynamique) et que c'est le tag qui détermine le comportement ...

  4. #4
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Petite remarque:
    N'oublie pas de mettre KeyPreview de ta fiche à true pour qu'elle intercepte l'appui des touches avant les autres contrôles

  5. #5
    rbh
    rbh est déconnecté
    Membre confirmé Avatar de rbh
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    384
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 384
    Points : 473
    Points
    473
    Par défaut
    Salut
    Il y a aussi les propriété Default et Cancel sur les boutons.
    Le bouton qui a defaut à True sera appelé avec Entrée.
    Celui qui a cancel à True sera appelé par Echap.

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Bonjour,

    A propos de la confusion avec Focus : J'ai jamais pigé l'intérêt dans le type TButton de pouvoir faire Button1.SetFocus vu qu'il suffit de cliquer sur un bouton pour l'activer et vu que Button1.SetFocus donne le focus à Button1 sans neutraliser les autres Buttons éventuellement présents???

  7. #7
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Il y a une différence très nette entre donner le focus et déclencher un click sur un bouton.

    Ou ai-je mal saisi ta question !

  8. #8
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    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 586
    Points : 25 254
    Points
    25 254
    Par défaut
    SetFocus c'est un comportement du TWinControl, le Bouton étant un composant Window, il le récupère naturellement ... maintenant, à part du confort utilisateur au clavier, je me pose aussi la question de son utilité, car effectivement tu peux vouloir guider ton utilisateur en mettant le focus sur tel ou tel bouton de l'écran selon les actions précédentes ... tout en lui laissant lui même faire le clic ...

  9. #9
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Je crois comprendre !!!

    Si le bouton en question a le focus, l'appui sur la touche espace ou enter déclenche le click.

    C'est peut-être le seul intérêt, tombé en désuétude depuis qu'on manie le mulot.

    @+

  10. #10
    Membre habitué Avatar de Ludo_360
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 295
    Points : 191
    Points
    191
    Par défaut
    =)
    aucun intéret (ou quasiment) je suis d'accord...
    juste que je voulais le faire ainsi et que la propriété m'avait échappée...

    merci pour vos réponses et commentaires!

    ludo

  11. #11
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Vérification faite : Si le Button1 a le focus, l'appui sur la touche BarreEspace ou Enter déclenche effectivement la procedure TForm1.Button1Click(Sender: TObject) ... et en plus cela peut permettre de guider un utilisateur en phase d'apprentissage de prise en main d'une appli. Enfin pigé l'intérêt. Merci.

    ... donc si Ludo_360 utilise un TEdit pour taper les mots à chercher, et à côté un TButton, quand on tape sur Entrée on lance la recherche avec la procedure TForm1.Button1Click(Sender: TObject) ... et en plus cela évite d'avoir à coder le test de TForm1.MonTEdit1OnKeyPress.

    ... tombé en désuétude depuis qu'on manie le mulot
    ... Claudius, c'est quoi le mulot?

  12. #12
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par Gilbert Geyer
    ... Claudius, c'est quoi le mulot?
    Mulot = Souris, je suppose que tu plaisantais.

  13. #13
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    A Claudius : "Mulot = Souris" Merci pour l'info mais je ne savais pas ... assez dur de piger le vocabulaire informatique dans le style Wm_NCHITTEST bien qu'il y ait des fonctions de recherche pour trouver ... donc pour l'argot de l'informatique y'a qu'en posant les questions.

    Par contre Ludo_360 m'avait pris de vitesse en ajoutant le tag "Résolu" après son message "aucun intéret" je crois qu'il n'a pas bien pigé l'intérêt du TButton en rapport avec sa question.

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

Discussions similaires

  1. Bouton qui ne prend pas la dimension demandée
    Par korked dans le forum Général Java
    Réponses: 1
    Dernier message: 12/05/2015, 08h36
  2. Connaitre l'élément qui a le focus avant un clic bouton
    Par tommyknocker dans le forum GTK+ avec C & C++
    Réponses: 7
    Dernier message: 24/07/2012, 03h12
  3. Réponses: 4
    Dernier message: 14/11/2011, 17h05
  4. récupérer le id de l'iframe qui prend le focus
    Par Michel_57 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/06/2008, 05h26
  5. Réponses: 2
    Dernier message: 26/09/2003, 16h49

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