Bonjour à tous
Bien que InputBox() possède un bouton 'Cancel' ce dernier est sans effet.
Ya t-il un moyen d'annuler son exécution ?
Bonjour à tous
Bien que InputBox() possède un bouton 'Cancel' ce dernier est sans effet.
Ya t-il un moyen d'annuler son exécution ?
Salut,
Linux/Laz1.4/FPC2.6.2, ça fonctionne très bien, exactement comme décrit par l'infobulle d'aide :
Étant entendu que function InputBox(const ACaption, APrompt, ADefault : String) : String;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.
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.
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
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;
merci Jipété.
Code : Sélectionner tout - Visualiser dans une fenêtre à part messagedlg ( const Message : string; DialogType : TMsgDlgType; Buttons : TMsgDlgButtons; HelpContext : Longint ) : Integer;
Bonjour
malheureusement c'est pas la valeur(0) qui devrait être pas défaut, car cette valeur d'annulationEt pourquoi donc ?
Puisque c'est elle qui est renvoyée si tu cliques sur "Annuler".
est rarement utilisée, mais une autre différente qui est souvent utilisée.![]()
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 !
Rebonjour
AMHA le bouton 'Annuler' doit exécuter systématiquement un 'Abort'.
@tourlourou
Good idea
Merci beaucoup
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 :
Si clic sur Annuler :
Si saisie de quelque chose et Ok :
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 !
Bonjour,
La fonction InputQuery permet cela.
En cliquant sur Annuler, la fonction retourne false et la valeur initiale de Value n'est pas modifiée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part function InputQuery(const ACaption, APrompt : String; var Value : String) : Boolean;
Thierry
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.
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;
Partager