Page 1 sur 1
[R] Nombre de caractère minimum et maximum inputbox
Posté : mer. 23 nov. 2011 14:49
par pouda
Bonjour,
Je souhaiterais limiter le nombre de caractère minimum et maximum d'une inputbox à 11 caractères.
J'ai cherché un peu dans le forum et sur google ... mais je ne trouve pas d’exemple concret ...
Si quelqu'un pouvait m'éclairer ca serait super sympa ...
Merci beaucoup.
Bye
Re: [..] nombre de caractère minimum et maximum inputbox
Posté : mer. 23 nov. 2011 14:58
par ani
tu doit utiliser le 4ieme paramètre (mandataire)
Exemple
bonne continuation

Re: [..] nombre de caractère minimum et maximum inputbox
Posté : mer. 23 nov. 2011 15:11
par pouda
j'étais sure que c'étais tous simple .

... tellement simple que je n'ai pas trouvé. Merci beaucoup pour cette aide.
@ bientôt.

Re: [..] nombre de caractère minimum et maximum inputbox
Posté : mer. 23 nov. 2011 15:13
par zeshrek
un petit [R] et ca sera parfait

Re: [..] nombre de caractère minimum et maximum inputbox
Posté : mer. 23 nov. 2011 15:22
par pouda
mince désolé encore de t'embeter mais cette fonction limite le nombre de caractère a 11 ... mais comment imposer 11 caractères à l'utilisateur... il doit impérativement rentrer 11 caractères ...

Re: [..] nombre de caractère minimum et maximum inputbox
Posté : mer. 23 nov. 2011 15:43
par sylvanie
Perso je reconstruirai une inputbox pour pouvir contrôler le bouton
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
Opt("GUIOnEventMode", 1)
$title="My GUI limit input 11 chars"
GUICreate($title,250,100) ; will create a dialog box that when displayed is centered
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
$input=GUICtrlCreateInput("", 10, 20)
GUICtrlSetOnEvent(-1,"ctrl_length")
GUICtrlSetLimit(-1,11, 11 ) ; to limit the entry to 3 chars
$hndctrl=GUICtrlGetHandle($input)
$button=GUICtrlCreateButton("Validation",10,50)
GUICtrlSetOnEvent(-1,"validation")
GUICtrlSetState(-1,$GUI_DISABLE)
GUISetState()
GUICtrlSetState($input,$GUI_FOCUS)
ControlClick("My GUI limit input 11 chars","",$input)
While 1
ctrl_length()
Sleep(50)
WEnd
Func CLOSEClicked()
Exit 0
EndFunc
Func ctrl_length()
Local $text
$text=GUICtrlRead($input)
If StringLen($text)<> 11 Then
If BitAND(GUICtrlGetState($button),$GUI_ENABLE) Then GUICtrlSetState($button,$GUI_DISABLE) ; le test est pour éviter le cintillements
Else
If BitAND(GUICtrlGetState($button),$GUI_DISABLE) Then GUICtrlSetState($button,$GUI_ENABLE)
EndIf
EndFunc
Func validation()
MsgBox(0,"Validation",GUICtrlRead($input))
EndFunc
Le seul truc qui m'embête est que j'aurai aimé que la fonction ne se déclenche que sur Focus de l'edit, mais bizarrement je n'y arrive pas, le guictrlgetstate me joue des trous pour le Focus ...
Re: [..] nombre de caractère minimum et maximum inputbox
Posté : mer. 23 nov. 2011 16:03
par Tlem
Sinon, vous pouvez faire ceci :
► Afficher le texte
Code : Tout sélectionner
While 1
$valeur = InputBox("Teste", "Entrez 11 caractères ", "", " M11")
If $valeur = "" Then
MsgBox(32, "Info", "Vous n'avez rien saisit ! ")
ExitLoop
EndIf
If StringLen($valeur) < 11 Then
MsgBox(16, "Erreur", "J'ai dit 11 caractères nom d'une pipe ... ")
EndIf
WEnd
Re: [..] nombre de caractère minimum et maximum inputbox
Posté : mer. 23 nov. 2011 21:46
par mikell
Si le but est que l'inputbox n'accepte qu'une chaine de 11 caractères, alors pourquoi pas simplement
Code : Tout sélectionner
While 1
$valeur = InputBox("Test", "Entrez 11 caractères ")
If StringLen($valeur) <> 11 Then
MsgBox(16, "Erreur", "Il faut 11 caractères")
Else
; ...
EndIf
WEnd
Avec un test pour une sortie de boucle après 3 essais ratés par exemple ?
Re: [..] Nombre de caractère minimum et maximum inputbox
Posté : mer. 23 nov. 2011 22:42
par Tlem
Le code revient au même, sauf que dans votre cas, l'utilisateur pourra taper plus de 11 caractères dans l'InputBox, alors que la paramètre " M11" limitera la saisie. Certes, cela revient au même, mais visuellement c'est différent.
Personnellement, j'aurais plutôt vu autre chose :
- Une InputBox créée de toute pièce.
- Une CallBack pour vérifier la saisie
- Si 11 caractères alors le bouton de validation devient actif.
Mais cela reviendrait à écrire 20 fois plus de code et je ne pense pas que pouda serait prêt à ce genre de concession.

Re: [..] Nombre de caractère minimum et maximum inputbox
Posté : jeu. 24 nov. 2011 08:41
par pouda
super!! merci beaucoup, mon problème est désormais solutionné. Merci encore pour votre réactivité et éfficacité.
@ bientôt.

Re: [..] Nombre de caractère minimum et maximum inputbox
Posté : jeu. 24 nov. 2011 09:15
par mikell
Tlem a écrit :Personnellement, j'aurais plutôt vu autre chose :
- Une InputBox créée de toute pièce.
- Une CallBack pour vérifier la saisie
- Si 11 caractères alors le bouton de validation devient actif.
Heu quelle différence avec la solution de sylvanie ?

Re: [..] Nombre de caractère minimum et maximum inputbox
Posté : jeu. 24 nov. 2011 10:17
par Tlem
J'avais pas testé le code et dans le cas présent on est en mode événement, ce qui implique que tout le code doit être écrit en conséquence.
Ceci dit, effectivement, c'est bien plus simple que la CallBack et présente de nombreux autres avantages dût au mode événementiel.
Five stars for Sylvanie.
