Import MaxGUI.DriversLocal window:TGadgetGlobal gadget:TGadgetwindow = CreateWindow("Window", 0, 0, 320, 150)gadget = CreateTextField(10, 10, ClientWidth(window) - 20, 25, window)SetGadgetLayout(gadget, 1, 1, 1, 0)ActivateGadget gadgetSetGadgetFilter(gadget, filter)Function filter(event:TEvent, context:Object) Select event.id Case EVENT_KEYDOWN Select event.data Case KEY_RETURN, KEY_ENTER Notify "Return/Enter pressed." Return 0 EndSelect EndSelect Return 1EndFunctionWhile WaitEvent() Select EventID() Case EVENT_WINDOWCLOSE End EndSelectWend
StrictImport maxgui.driversLocal win:Tgadget=CreateWindow:Tgadget("",100,100,800,600,Null,WINDOW_TITLEBAR|WINDOW_MENU|WINDOW_CENTER|WINDOW_STATUS)Local a:Tgadget=CreateTextField(521,302,20,20,win) Local b:Tgadget=CreateTextField(551,302,20,20,win)ActivateGadget(a)Repeat WaitEvent() Select EventID() Case EVENT_GADGETLOSTFOCUS Select EventSource() Case a If b<>ActiveGadget() Exit End Select End Select ForeverActivateGadget(b)Repeat WaitEvent() Select EventID() Case EVENT_GADGETLOSTFOCUS Select EventSource() Case b If a<>ActiveGadget() Exit End Select End Select ForeverPrint "finished"
Import MaxGUI.DriversLocal window:TGadgetGlobal gadget:TGadgetwindow = CreateWindow("Window", 0, 0, 320, 200)gadget = CreateTextField(10, 10, ClientWidth(window) - 20, 25, window)gadget1 = CreateTextField(10, 50, ClientWidth(window) - 20, 25, window)SetGadgetLayout(gadget, 1, 1, 1, 0)SetGadgetFilter(gadget, filter)Function filter(event:TEvent, context:Object) Select event.id Case EVENT_KEYDOWN Select event.data Case KEY_RETURN, KEY_ENTER Notify "Return/Enter pressed." Return 0 EndSelect EndSelect Return 1EndFunction[b]ActivateGadget gadget[/b]While WaitEvent() Select EventID() Case EVENT_WINDOWCLOSE End EndSelectWendActivateGadget gadget1While WaitEvent() Select EventID() Case EVENT_WINDOWCLOSE End EndSelectWend
Import MaxGUI.DriversLocal window:TGadgetGlobal gadget:TGadget, gadget1:TGadgetwindow = CreateWindow("Window", 0, 0, 320, 200)gadget = CreateTextField(10, 10, ClientWidth(window) - 20, 25, window)gadget1 = CreateTextField(10, 50, ClientWidth(window) - 20, 25, window)SetGadgetLayout(gadget, 1, 1, 1, 0)SetGadgetFilter(gadget, filter)ActivateGadget(gadget)Function filter(event:TEvent, context:Object) Select event.id Case EVENT_KEYDOWN Select event.data Case KEY_RETURN, KEY_ENTER If ActiveGadget() = gadget ActivateGadget(gadget1) Return 0 EndIf EndSelect EndSelect Return 1EndFunctionWhile WaitEvent() Select EventID() Case EVENT_WINDOWCLOSE End EndSelectWend
'Works if you tab it through. Works if you tab g and enter g1.' skips g1 if you press enter on g.StrictImport MaxGUI.DriversGlobal window:TGadgetGlobal g:TGadgetGlobal g1:TGadgetwindow=CreateWindow("Window",0,0,320,200)g=CreateTextField(10,10,30,25,window)g1=CreateTextField(10,50,30,25,window)RemSetGadgetFilter g,EnterFilterSetGadgetFilter g1,EnterFilterFunction EnterFilter:Int(event:TEvent,context:Object) If(event.id=EVENT_KEYDOWN And event.data=13) Return False ' this isnt even detected! Return TrueEnd FunctionEndRemFunction wait() While WaitEvent() Select EventID() Case EVENT_WINDOWCLOSE End Case EVENT_GADGETLOSTFOCUS ' Select EventSource() ' Case g Exit ' Case g1 Exit Exit 'End Select EndSelect WendEnd FunctionActivateGadget g ; wait() Print "from g:"+TextFieldText$(g)ActivateGadget g1 ; wait() Print "from g1:"+TextFieldText$(g1)Print "finished"
StrictImport MaxGui.DriversGlobal window:Tgadget=CreateWindow("Window",0,0,320,200)Global g:Tgadget=CreateTextField(10,10,30,25,window)Global g1:Tgadget=CreateTextField(10,50,30,25,window)Global hiddenbtn:TGadget = CreateButton ("",10,150,250,20,window,BUTTON_OK) HideGadget hiddenbtn ; ActivateGadget g While WaitEvent() 'Print CurrentEvent.ToString() Select EventID() Case EVENT_GADGETACTION Select EventSource() Case hiddenbtn ActivateGadget g1 ; WaitEvent ; ActivateGadget g1 ' <--- KEY LINE! End Select Case EVENT_GADGETLOSTFOCUS Select EventSource() Case g1 Exit End Select Case EVENT_WINDOWCLOSE End Case EVENT_APPTERMINATE End End Select Wend Print "g= "+TextFieldText$(g) Print "g1= "+TextFieldText$(g1)
StrictImport MaxGui.DriversGlobal window:Tgadget=CreateWindow("Window",0,0,320,200)Global g:Tgadget=CreateTextField(10,10,30,25,window)Global g1:Tgadget=CreateTextField(10,50,30,25,window)Global g2:Tgadget=CreateTextField(10,80,30,25,window)Global hiddenbtn:TGadget=CreateButton("ok",50,100,50,20,window,BUTTON_OK) 'HideGadget hiddenbtn ; ActivateGadget g While WaitEvent() Print CurrentEvent.ToString() Select EventID() ' Case EVENT_GADGETACTION ' Select EventSource() ' Case hiddenbtn ' Select EventID() Case EVENT_GADGETLOSTFOCUS Select EventSource() Case g ActivateGadget g1 ; WaitEvent ; ActivateGadget g1 ' <--- KEY LINE! ActivateGadget g1 ; WaitEvent ; ActivateGadget g1 ' comment this out and it wont work Case g1 ActivateGadget g2 ; WaitEvent ; ActivateGadget g2 ActivateGadget g2 ; WaitEvent ; ActivateGadget g2 ' comment this out and it wont work ' code needed in here for more than 2 textfields. Case g2 Exit End Select 'End Select ' works if button pressed when you want to move to next field. Works on tab through ' does not work if return pressed after g (g1 is skipped). ' this is interesting! works if 2 lots of waitevents for 3 fields! but for return only if we could flush the event queue... 'End Select ' Case EVENT_GADGETLOSTFOCUS ' Select EventSource() ' Case g1 Exit ' Case g2 Exit ' End Select Case EVENT_WINDOWCLOSE End Case EVENT_APPTERMINATE End End Select Wend Print "g= "+TextFieldText$(g) Print "g1= "+TextFieldText$(g1) Print "g2= "+TextFieldText$(g2)