Comment dois-je faire pour faire apparaitre le showmessage quand je met dans un inputbox un integer alors que seul les strings sont acceptés, sachant que plusieurs inputbox se succède?
Merci d'avance.
Version imprimable
Comment dois-je faire pour faire apparaitre le showmessage quand je met dans un inputbox un integer alors que seul les strings sont acceptés, sachant que plusieurs inputbox se succède?
Merci d'avance.
Bonjour.
Transformer le type Integer en String.
Il faut consulter l'aide de DELPHI.;)Code:
1
2
3
4
5
6
7 Var Chn : String; Valeur : Integer; begin Chn := IntToStr(Valeur);
Ca donne qqch du genre:
Et aussi: ne pas oublier de vérifier au préalable que l'utilisateur a bien rentré un entier dans l'inputbox. ;)Code:
1
2
3
4
5
6 rep: integer ; Message: string ; Entier: integer ; rep = StrToInt (InputBox(Message+' '+IntToStr(Entier)) ;
[balises CODE rajoutées par Pedro. Merci d'y penser à l'avenir]
Bonjour
S'il s'agit de tester la chaîne saisie dans l'inputbox, qui ne doit accepter qu'un "string", ça me paraît difficile, vu que inputbox renvoie toujours un string, même en cas de saisie de chiffres
Il faut faire le test sur la chaîne, pour contrôler que les caractères indésirables n'y figurent pas :?
Mais j'ai p'trêtre mal compris la question
Bonne prog
pour control ,2 méthode
1 avec val (voir l'aide en ligne)
2- avec try except +inttostrCode:
1
2
3
4
5
6
7
8
9
10
11
12 uses Dialogs; var I, Code: Integer; begin { Lecture du texte à partir du contrôle TEdit } Val(Edit1.Text, I, Code); { Erreur pendant la conversion en entier? } if Code <> 0 then MessageDlg('Erreur en position: ' + IntToStr(Code), mtWarning, [mbOk], 0, mbOk); else Canvas.TextOut(10, 10, 'Valeur = ' + IntToStr(I)); end;
Code:
1
2
3
4
5
6 try vale:=strtoint(Mots); except vale:=0; end;
J'ajoute mon grain de sel :)
Code:
1
2
3
4
5
6
7 var i: integer begin if not TryStrToInt(Chaine, i) then Showmessage('Ceci n''est pas un nombre'); end;
Je propose ceci :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 var vNbe: Integer; vNbeStr: String; begin vNbe := 10; // Valeur par défaut ou existante vNbeStr := IntToStr(vNbe); repeat if not InputQuery('Un entier svp', 'Un entier svp', vNbeStr) then Break; // L'utilisateur à cliqué sur "Annuler" until TryStrToInt(vNbeStr, vNbe); ...