GUI Inputbox problem

09/24/2010 21:39 Asuramaru#1
joa hätte ein problem mit der Inputbox :D


gibt es eine möglichkeit wenn die Inputbox 4 ziffern da stehen hat (gibt es ein befehl das man nur ziffern reinschreiben darf? :o) das er zur nächsten input wechselt um da weiterzuschreiben?^^
mit StringLen komm ich nicht weiter^^

If Stringlen(Guictrlread($input1) = 4 then
Send("{TAB}")
Endif

da er dieß dann ständig macht(while schleife vom GUI)
09/24/2010 22:19 Goxide#2
Quote:
Originally Posted by DarkGER! View Post
joa hätte ein problem mit der Inputbox :D


gibt es eine möglichkeit wenn die Inputbox 4 ziffern da stehen hat (gibt es ein befehl das man nur ziffern reinschreiben darf? :o) das er zur nächsten input wechselt um da weiterzuschreiben?^^
mit StringLen komm ich nicht weiter^^

If Guictrlread............
Send("{TAB}")
Endif

da er dieß dann ständig macht(while schleife vom GUI)
Einmal googlen schon gefunden: [Only registered and activated users can see links. Click Here To Register...]
Musst halt gucken wies geht mit dann "runterkommen" zur nächsten Inputbox.
09/24/2010 22:25 einkeks95#3
Quote:
If Guictrlread............
Send("{TAB}")
Endif
PHP Code:
AdlibRegister ( "check_input", 1500)
Func check_input()
If 
Guictrlread............
Send("{TAB}")
Endfunc
...
AdlibdeRegister ("check_input) 
Probier's mal damit ;) :bandit:
09/24/2010 22:29 omer36#4
in etwa so vllt.. aber ist bischen buggy weil es in der schleife ist...
kann grade nicht klar denken...bekomms grad nicht hin..
vllt hilft es dir ja:

PHP Code:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
$Form1 = GUICreate("Form1", 373, 100, 120, 124)
GUISetBkColor(0x3366FF)
$Input1 = GUICtrlCreateInput("", 56, 40, 49, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_NUMBER ))
GUICtrlSetLimit(-1,4)
$Input2 = GUICtrlCreateInput("", 152, 40, 49, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_NUMBER ))
GUICtrlSetLimit(-1,4)
$Input3 = GUICtrlCreateInput("", 248, 40, 49, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_NUMBER ))
GUICtrlSetLimit(-1,4)
GUISetState(@SW_SHOW)


While 
1
    $nMsg 
= GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
    EndSwitch
start()
Wend

Func start
()
If 
StringLen(GUICtrlRead($Input1)) = "4" Then
    GUICtrlSetState
($Input2, $GUI_FOCUS)
EndIf
If 
StringLen(GUICtrlRead($Input2)) = "4" Then
    GUICtrlSetState
($Input3, $GUI_FOCUS)
EndIf
EndFunc 
09/24/2010 22:35 Asuramaru#5
@einkeks95

Ich denke mal
AdlibdeRegister ("check_input)
soll AdlibUnRegister sein :D

klappt leider nicht :o
bleibt unverändert

@omer36
1. Input klappt es ganz gut
sobald er aber auf die 2. Input wechselt kann man nur 1 zahl schreiben (da diese makiert ist)
und man hat keine chance auf eine andere Inputbox zu klicken
09/24/2010 23:24 Mozo_#6
Also das hier funzt bei mir super...

PHP Code:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
$Form1 = GUICreate("Form1", 373, 100, 120, 124)
GUISetBkColor(0x3366FF)
$Input1 = GUICtrlCreateInput("", 56, 40, 49, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_NUMBER))

GUICTRLSETLimit(-1,4)
$Input2 = GUICtrlCreateInput("", 152, 40, 49, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_NUMBER))
GUICTRLSETLimit(-1,4)
$Input3 = GUICtrlCreateInput("", 248, 40, 49, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_NUMBER))
GUICTRLSETLimit(-1,4)
GUISetState(@SW_SHOW)


While 
1
    $nMsg 
= GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
    EndSwitch
Wend 
09/24/2010 23:36 Asuramaru#7
Quote:
Originally Posted by Mozo_ View Post
Also das hier funzt bei mir super...


ja schon aber er springt ja nicht von einem input zum anderen :D
09/24/2010 23:38 Mozo_#8
Okay ;)
Was hälst du davon? :

Neuer code:
PHP Code:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
$Form1 = GUICreate("Form1", 373, 100, 120, 124)
GUISetBkColor(0x3366FF)
$Input1 = GUICtrlCreateInput("", 56, 40, 49, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_NUMBER ))
GUICtrlSetLimit(-1,4)
$Input2 = GUICtrlCreateInput("", 152, 40, 49, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_NUMBER ))
GUICtrlSetState($Input2,$GUI_DISABLE)
GUICtrlSetLimit(-1,4)
$Input3 = GUICtrlCreateInput("", 248, 40, 49, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_NUMBER ))
GUICtrlSetState($Input3,$GUI_DISABLE)
GUICtrlSetLimit(-1,4)
GUISetState(@SW_SHOW)

$i = 1
$x 
= 1
$y 
= 1

While 1
    $nMsg 
= GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
    EndSwitch
start()
Wend

Func start
()
If 
StringLen(GUICtrlRead($Input1)) = "4" And $i = 1 Then
    $i 
= 0
    GUICtrlSetState
($Input1, $GUI_DISABLE)
    
GUICtrlSetState($Input2, $GUI_ENABLE)
    
GUICtrlSetState($Input2, $GUI_FOCUS)
    
GUICtrlSetState($Input2, $GUI_NOFOCUS)
EndIf
If 
StringLen(GUICtrlRead($Input2)) = "4" And $x = 1 Then
    $x 
= 0
    GUICtrlSetState
($Input2, $GUI_DISABLE)
    
GUICtrlSetState($Input3, $GUI_ENABLE)
    
GUICtrlSetState($Input3, $GUI_FOCUS)
    
GUICtrlSetState($Input3, $GUI_NOFOCUS)
EndIf
If 
StringLen(GUICtrlRead($Input3)) = "4" And $y = 1 Then
    $y 
= 0
    GUICtrlSetState
($Input3, $GUI_DISABLE)
EndIf
EndFunc 

//sry warn fehler drinne^^
09/24/2010 23:43 Asuramaru#9
danke dir ;)
funktioniert super :D