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 :

InputBox bouton Cancel [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2018
    Messages : 3
    Points : 4
    Points
    4
    Par défaut InputBox bouton Cancel
    Bonjour à tous, j'ai un souci avec ma inputBox.
    En effet j'ai créé un bouton qui renvoie à une inputBox. J'ai réussi à faire en sorte que celle-ci renvoie une erreur puis se ferme si le champ est vide mais je n'arrive pas à trouver la ligne de code me permettant de dire : si le bouton Cancel a été appuyé, alors SORTIR. J'attend vos réponses merci de votre aide
    Voici mon code :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    procedure TFStock.BtnAjouterClick(Sender: TObject);
    var
        nom_produit: String;
        meme_produit: Integer;
    begin
      //boite de dialogue avec entrée de texte
      repeat
          nom_produit := InputBox ('Enregistrer un nouveau produit',
                                  'Entrer le nom du produit:', '');
     
          //vérifier qu'il n'est pas encore enregistré
          SQLQuery1.Close;
          SQLQuery1.SQL.Text:= 'SELECT COUNT(pro_nom) AS count_nom FROM produit WHERE pro_nom = '''+nom_produit+''';';
          SQLQuery1.Open;
          meme_produit:= SQLQuery1.Fields[0].AsInteger;
          if nom_produit = '' then
          begin
          ShowMessage('Le champ est vide.');
          Exit;
          end
          else if meme_produit > 0 then //il exite deja
          begin
               if MessageDlg ('Error', 'Erreur: un autre produit porte le même nom!', mtConfirmation,
                             [mbOK, mbCancel],0) = mrCancel then Exit;
          end
      until (meme_produit = 0) and (nom_produit <> '');
     
      //Vérification que l'utilisateur n'a rien écrit
      FMenu.SQLQuery1.Close;     //Enregistrement
      FMenu.SQLQuery1.SQL.Text:= 'INSERT INTO `produit` (`pro_id`, `pro_nom`, `pro_quantite`, `pro_date_maj`) '
                               +'VALUES (NULL, :pro_nom , 0, CURRENT_TIMESTAMP);';
      FMenu.SQLQuery1.Prepare;
      FMenu.SQLQuery1.Params.ParamByName('pro_nom').AsString := nom_produit;
      FMenu.SQLQuery1.ExecSQL;
      FMenu.SQLTransaction1.Commit;
      FMenu.SQLTransaction1.StartTransaction;
      AffichStock;
      ShowMessage('Le produit a bien été enregistré.');
     
    end;

  2. #2
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Bonsoir
    Citation Envoyé par kawaiinah972 Voir le message
    Bonjour à tous, j'ai un soucis avec ma inputBox.
    je n'arrive pas à trouver la ligne de code me permettant de dire : si le bouton cancel a été appuyé, alors SORTIR. j'attend vos réponses merci de votre aide
    Tu parles pour ton MessageDlg if MessageDlg ('Error', 'Erreur: un autre produit porte le même nom!', mtConfirmation,[mbOK, mbCancel],0) = mrCancel then Exit; ? ce n'est pas très clair

    Bonne soirée
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  3. #3
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 070
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 070
    Points : 15 454
    Points
    15 454
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par kawaiinah972 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
          nom_produit := InputBox ('Enregistrer un nouveau produit',
                                  'Entrer le nom du produit:', '');
    Bonjour ! Si l'utilisateur appuie sur Annuler, la fonction renvoie comme résultat la chaîne par défaut (dans votre cas une chaîne vide).
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2018
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Ah donc le 3e paramètre c'est le bouton annuler! merci j'ai changé en mettant un '?' comme chaine de caractère

  5. #5
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 343
    Points : 536
    Points
    536
    Billets dans le blog
    2
    Par défaut InputQuery() préférable à InputBox()
    Citation Envoyé par Roland Chastain Voir le message
    Bonjour ! Si l'utilisateur appuie sur Annuler, la fonction renvoie comme résultat la chaîne par défaut (dans votre cas une chaîne vide).
    Vous pouvez aussi utiliser InputQuery, bien préférable: on teste un booléen. De toute façon, il faut tester la réponse ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // Prototype (dans l'unité Dialogs)
    function InputQuery(const ACaption, APrompt : String; var Value : String) : Boolean;
     
    // Utilisation
    QResponse := 'Je sais pas';
    if (InputQuery('Question', 'Quelle est la différence entre un pigeon ?', QResponse)) then
    begin
      // traitement
    end;

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

Discussions similaires

  1. Problème Bouton Cancel InputBox
    Par charlie77 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/01/2008, 05h53
  2. Utiliser un bouton Cancel
    Par mimic50 dans le forum MFC
    Réponses: 3
    Dernier message: 31/08/2006, 22h33
  3. Boutons "Cancel" et "Continue"
    Par Romain93 dans le forum JSF
    Réponses: 2
    Dernier message: 25/07/2006, 14h45
  4. bouton cancel frame
    Par lazzeroni dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 16/05/2006, 08h41
  5. [JFrame] Boite de dialogue d'entrée de texte et bouton Cancel
    Par tooney dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 29/05/2005, 16h42

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