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

C++Builder Discussion :

Touche "Entrer" ferme la Form


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2004
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 115
    Par défaut Touche "Entrer" ferme la Form
    Bonjour à tous, j'ai encore besoin de votre aide.

    Sur une forme je dispose d'un TButton (ButtonQuitter) qui ferme ma forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void __fastcall TForm::ButtonQuitterClick(TObject *Sender)
    {
      Form->Close();
    }
    J'ai également un TEdit (EditSaisie) qui me permet de saisir du texte et un second TButton (ButtonAjout) qui me permet d'ajouter le contenu de mon TEdit dans une BDD.
    J'aurais voulu que lorsque je suis dans le TEdit (EditSaisie) et que j'appuie sur la touche "Entrer" qu'il appelle la fonction lié au ButtonAjout. Or même en utilisant les fonctions OnKeyDown ou OnKeyPress du TEdit, à chaque fois c'est le code du ButtonQuitter qui est appelé.

    Code du TEdit jamais appelé lorsque l'on appuie sur "ENTRER"
    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
    //---------------------------------------------------------------------------
    void __fastcall TForm::EditSaisieKeyPress(TObject *Sender, char &Key)
    {
      if(Key ==  VK_RETURN) 
        ButtonAjoutClick(Sender);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm::EditSaisieKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
    {
      if(Key ==  VK_RETURN) 
        ButtonAjoutClick(Sender);
    }
    //--------------------------------------------------------------------------
    void __fastcall TForm::ButtonAjoutClick(TObject *Sender)
    {
       GererAjoutModif(); //Fonction d'ajout dans la BDD
    }
    //------------------------------------------------------------------------------
    Merci encore une fois de votre aide

  2. #2
    Membre très actif Avatar de nirgal76
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2007
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 923
    Par défaut
    La propriété "Default" de ton bouton Quitter ne serait pas à true par hasard ?

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2004
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 115
    Par défaut
    La propriété "Default" est à True pour les deux TButton ...

    Je ne savais pas se que cette propriété était

    Merci beaucoup je vais regarder de ce coté

  4. #4
    Membre très actif Avatar de nirgal76
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2007
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 923
    Par défaut
    Une copie de l'aide de c++ Builder 2010 va tout t'expliquer :

    Si la propriété Default vaut true, le gestionnaire d'événement OnClick du bouton est exécuté quand l'utilisateur appuie sur la touche Entrée.

    Bien qu'une application peut contenir plusieurs boutons Default, la fiche appelle le gestionnaire d'événement OnClick seulement pour le premier bouton visible dans l'ordre de tabulation. En outre, tout bouton détenant la focalisation devient temporairement le bouton Default. Par conséquent, si l'utilisateur sélectionne un autre bouton avant d'appuyer sur Entrée, c'est le gestionnaire d'événement OnClick de ce bouton qui s'exécutera.
    donc oui, ton problème est là

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2004
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 115
    Par défaut
    Merci encore pour votre aide rapide et très efficace

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

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