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 :

Annulation de l'exécution de InputBox() [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre éclairé
    Avatar de FOCUS77
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Par défaut Annulation de l'exécution de InputBox()
    Bonjour à tous

    Bien que InputBox() possède un bouton 'Cancel' ce dernier est sans effet.

    Nom : inputbox.png
Affichages : 266
Taille : 25,7 Ko

    Ya t-il un moyen d'annuler son exécution ?

  2. #2
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 101
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 101
    Par défaut
    Salut,

    Linux/Laz1.4/FPC2.6.2, ça fonctionne très bien, exactement comme décrit par l'infobulle d'aide :
    If the user selects the OK button, the text in the text box is returned.
    If the user selects the Cancel button, the default string is returned.
    Étant entendu que function InputBox(const ACaption, APrompt, ADefault : String) : String;

  3. #3
    Membre éclairé
    Avatar de FOCUS77
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Par défaut
    Bonjour

    Effectivement, le code suivant fonctionne sous (W7 32 Laz 1.6), mais on perdra la valeur par défaut qui est la plus souvent utilisée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm1.Button1Click(Sender: TObject);
    var str:string;
    begin
    str:=InputBox('caption','prompt','0');
    if str='0' then
    Abort
    else
      showmessage(str)
    end;
    j'aurai souhaité qu'il possédait des 'TMsgDlgButtons' comme 'MessageDlg', la tâche serait plus facile.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    messagedlg ( const Message : string; DialogType : TMsgDlgType; Buttons : TMsgDlgButtons; HelpContext : Longint ) : Integer;
    merci Jipété.

  4. #4
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 101
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 101
    Par défaut
    Citation Envoyé par FOCUS77 Voir le message
    Bonjour

    Effectivement, le code suivant fonctionne sous (W7 32 Laz 1.6), mais on perdra la valeur par défaut qui est la plus souvent utilisée.

    Et pourquoi donc ?
    Puisque c'est elle qui est renvoyée si tu cliques sur "Annuler".

  5. #5
    Membre éclairé
    Avatar de FOCUS77
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Par défaut
    Bonjour

    Et pourquoi donc ?
    Puisque c'est elle qui est renvoyée si tu cliques sur "Annuler".
    malheureusement c'est pas la valeur(0) qui devrait être pas défaut, car cette valeur d'annulation
    est rarement utilisée, mais une autre différente qui est souvent utilisée.

  6. #6
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 917
    Billets dans le blog
    6
    Par défaut
    Conclusion : ne pas utiliser une InputBox, mais une fiche avec un TEdit et les boutons que tu souhaites, afin de créer le comportement que tu vises.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  7. #7
    Membre éclairé
    Avatar de FOCUS77
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Par défaut
    Rebonjour

    AMHA le bouton 'Annuler' doit exécuter systématiquement un 'Abort'.

    @tourlourou

    Good idea

    Merci beaucoup

  8. #8
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 101
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 101
    Par défaut
    Je ne sais pas si c'est moi qui ne comprend rien mais je ne capte pas ce que vous racontez, ou alors ça ne fonctionne pas sous Windows et ça fonctionne bien (pour une fois !) sous Linux ?

    Le code et son exécution :
    Nom : inputbox_avant.png
Affichages : 289
Taille : 18,7 Ko

    Si clic sur Annuler :
    Nom : inputbox_cancel.png
Affichages : 281
Taille : 7,5 Ko

    Si saisie de quelque chose et Ok :
    Nom : inputbox_aprèstexteplusok.png
Affichages : 240
Taille : 8,1 Ko

    Qu'est-ce qui ne va pas dans ce que je décris ? Qu'est-ce qu'il faut de plus ?

    EDIT : le forum a l'air toujours cassé en ce qui concerne les images insérées,
    EDIT du EDIT : ça a l'air réparé, ouf !

  9. #9
    Membre Expert

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Par défaut
    Bonjour,

    Citation Envoyé par FOCUS77 Voir le message
    AMHA le bouton 'Annuler' doit exécuter systématiquement un 'Abort'.
    La fonction InputQuery permet cela.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function InputQuery(const ACaption, APrompt : String; var Value : String) : Boolean;
    En cliquant sur Annuler, la fonction retourne false et la valeur initiale de Value n'est pas modifiée.

    Thierry

  10. #10
    Membre éclairé
    Avatar de FOCUS77
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Par défaut
    Rebonjour

    @Jipété

    Actuellement les images envoyées sont réduites en icônes à cause d'un faible débit.
    Je reverrai ton explication plus tard.

    @ThWilliam

    Merci de m'avoir compris.
    et merci pour la réponse.

  11. #11
    Membre éclairé
    Avatar de FOCUS77
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Par défaut
    Rebonjour

    donc voilà un exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Str: Ansistring ; 
    begin
      Str:='6';
      if InputQuery('L''introduction d''un nombre', 'Taper un nombre S.V.P',False,Str)
      then ShowMessage(Str)
      else
      Abort
    end;

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

Discussions similaires

  1. annulation dans une inputbox
    Par sharpeye dans le forum Access
    Réponses: 20
    Dernier message: 29/01/2009, 20h31
  2. JS annulant par erreur l'exécution d'un autre JS
    Par lodan dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 07/12/2006, 15h36
  3. [VB.NET]Inputbox: tester si on clique sur Annuler
    Par waniiya dans le forum Windows Forms
    Réponses: 5
    Dernier message: 26/07/2006, 14h03
  4. Problème d'annulation d'InputBox
    Par cciocc dans le forum Access
    Réponses: 4
    Dernier message: 18/07/2006, 15h30
  5. [VBA inputbox] le bouton annuler ne marche pas
    Par herendel dans le forum Access
    Réponses: 2
    Dernier message: 15/05/2006, 12h42

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