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 :

Cancel on EXIT..


Sujet :

Delphi

  1. #1
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Par défaut Cancel on EXIT..
    j'ai une form FORM1, contenant un editbox EDIT1, plusieurs panels et 2 boutons ANNULER et VALIDER.

    je suis sur mon Editbox Edit1
    je dois vérifier (sur le OnExit) si le texte de Edit1 n'est pas vide pour passer aux autres traitements..(message d'erreur qui apparait)

    sauf que je veux qu'en appuyant sur le bouton ANNULER, rien ne se passe..

    je sais intercepter une touche du clavier par le biais de (if key<> #13) par ex, mais comment intercepter un click??

    j'espère que c'est clair!

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 21
    Par défaut Magdani
    C'est ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TForm1.AnnulerClick(Sender: TObject);
    begin
      if Edit1.Text<>'' then ShowMessage('Pas vide ...');
    end;
     
    procedure TForm1.AnnulerKeyPress(Sender: TObject; var Key: Char);
    begin
      if Edit1.Text<>'' then ShowMessage('Pas vide ...');
    end;

  3. #3
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 575
    Par défaut
    Salut


    L'événément OnExit ne sera déclenché que si le composant sur lequel tu clique est réceptif à la focalisation et qu'il figure dans la liste des composants à arrêt de tabulation.

    Il faut donc d'abord que ce composant soit un descendant de TWincontrol (TButton, TBitButton..., ce qui exclut les TSpeedButton) ensuite il faut que la propriété TabStop de ce bouton vaille True.

    cdlt

    e-ric

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Par défaut
    Dans ton bouton "Annuler", définit la propriété "Cancel" à True !

  5. #5
    Membre Expert Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Par défaut
    Citation Envoyé par kwasin
    Dans ton bouton "Annuler", définit la propriété "Cancel" à True !
    + si ta form est modal met la prpriéte

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Par défaut
    Citation Envoyé par edam
    + si ta form est modal met la prpriéte
    Farpaitement

  7. #7
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Par défaut
    non non.. c'est pas du tout ça..

    en fait, si mon editbox est vide, lorsque j'en sors, je dois avoir un message d'erreur.
    jusque là, tout se passe très bien..

    il me reste un seul cas à gérer..
    quand j'appuie sur annuler(editbox est toujours vide), j'ai encore le emssage d'erreur! (car pour appuyer sur le bouton, il faut sortir de l'editbox la première fois.. d'où le message d'erreur)

    j'espère que c'est clair..
    Merci

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Par défaut
    Heu, question simple


    Quand on clique sur annuler, tu veux le message d'erreur ou pas ?

  9. #9
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par défaut
    justement...

    ce n'est qu'en appuyant sur le bouton annuler que je ne veux pas de message d'erreur.

    pour le moment, le fait de me mettre sur le bouton Annuler me sort le message d'erreur(à cause du onexit de mon editbox)

  10. #10
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 575
    Par défaut
    Salut

    A mon avis, ton premier message n'a pas le même sens que ton dernier. Selon celui-ci, tui semble vouloir que le contrôle d'erreur ne soit pas réalisé si l'utilisateur clique sur le bouton Annuler.

    Tu as codé le traitement de l'erreur de saisie dans le OnExit du composant et tu te retrouve coincé lorsque tu cliques sur le bouton Annuler car le focus passe alors sur ce bouton et déclenche le OnExit du TEdit. c'est bien cela ?

    Dans ce cas, deux solutions :

    1 - Déplace le code du gestionnaire OnExit du composant TEdit et place-le dans le gestionnaire OnClick du bouton Valider.

    2 - affecte False à la propriété TabStop du bouton Annuler.

    cdlt

    e-ric

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  11. #11
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 575
    Par défaut
    Question : freestyler = laadhar ?

    On joue à cache-cache ?

    e-ric

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  12. #12
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par défaut
    :-)
    oh c'est un vieux login..
    apparament, de cette machine j'ai des cookies qui me renvoient sur ce login..

    désolé pour la confusion..

  13. #13
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Par défaut
    bon je reviens..

    L'avantage, c'est que mon problème est bien compris maintenant!

    par contre :

    Solution 1 - je ne peux pas.. il faut que je passe par ce mécanisme on exit!

    Solution 2 - à quoi cela va m'avancer d'affecter TabStop d'Annuler à false???

  14. #14
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Par défaut
    En gros,
    comment traduire (si j'appuie sur le bouton 'machin', je fais ceci) en delphi..?

  15. #15
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 42
    Par défaut
    bon j'ai trouvé..

    il suffisait de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if Edit1.Text = '' then
      begin
        if ButtonAnnuler.Focused then exit;
        ShowMessage('Veuillez entrez un nouveau code..');
        exit;
      end;
    Merci de votre réactivité

  16. #16
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut
    Salut,

    Ne peux-tu pas simplement mettre ton message d'erreur sur le OnEnter de tes autres composants que ton bouton "annuler"? En assignant ta procédure à tes composants ça devrait pas être trop compliqué.


    @+.

  17. #17
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 575
    Par défaut
    Dans ce cas, pas de TabStop = False sur le bouton Annuler.

    e-ric

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

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

Discussions similaires

  1. [VB6] comment renvoyer un exit code en VB6 ?
    Par VVE dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 13/05/2004, 14h30
  2. Script SQL avec des EXIT SQL.SQLCODE
    Par fidififouille dans le forum Oracle
    Réponses: 14
    Dernier message: 23/04/2004, 17h45
  3. return ();exit() ;
    Par Zazeglu dans le forum C
    Réponses: 12
    Dernier message: 10/10/2003, 21h56
  4. [langage] exit
    Par aw dans le forum Langage
    Réponses: 2
    Dernier message: 12/06/2003, 12h10
  5. [VB6] Cancel et Commondialog
    Par ChrisFAPS dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 09/04/2003, 17h05

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