ich versuche (vergeblich) ein Eingabefeld für ein lizenz schlüssel zu basteln,
der lizenz schlüssel sieht folgendermaßen aus
xxxxx-yyyyy-xxxxx-yyyyy-xxxxx
ich habe fünf textgadget generiert die jeweils max 5 Zeichen annehmen.
das Problem ist, falls ich ein Zeichen falsch eingebe dann kann ich keine Änderung mehr am vorherigen Feld vornehmen.
hatte mir vorgestellt mir der taste "#PB_Shortcut_Back" zurück zu springen aber.. ich habe ja eine Begrenzung auf 5 Zeichen gesetzt und dadurch springt mein Cursor nicht zurück.
kann jemand weiterhelfen?
Code: Alles auswählen
Enumeration
#Window_Lic
EndEnumeration
Enumeration
#Lic_1
#Lic_2
#Lic_3
#Lic_4
#Lic_5
#Btn_Lic
#Btn_lic_abbr
#Menu_Back
EndEnumeration
Procedure Open_Window_Lic()
If OpenWindow(#Window_Lic, 425, 277, 478, 192, "Lizenz Assistent", #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered |#PB_Window_SystemMenu)
SetWindowColor(#Window_Lic,#White)
StringGadget(#Lic_1, 40, 100, 70, 20, "")
StringGadget(#Lic_2, 120, 100, 70, 20, "")
StringGadget(#Lic_3, 200, 100, 70, 20, "")
StringGadget(#Lic_4, 280, 100, 70, 20, "")
StringGadget(#Lic_5, 360, 100, 70, 20, "")
ButtonGadget(#Btn_Lic, 40, 140, 85, 30, "Fertig stellen")
ButtonGadget(#Btn_lic_abbr, 140, 140, 85, 30, "Abbrechen")
AddKeyboardShortcut(#Window_lic, #PB_Shortcut_Back,#Menu_Back)
EndIf
EndProcedure
Open_Window_Lic()
Repeat ; Start of the event loop
Event = WaitWindowEvent() ; This line waits until an event is received from Windows
WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
GadgetID = EventGadget() ; Is it a gadget event?
EventType = EventType() ; The event type
;You can place code here, and use the result as parameters for the procedures
Select event
Case #PB_Event_Menu
Select EventMenu()
Case #Menu_Back
Debug "?"
If GetActiveGadget() >#lic_1
If Len(GetGadgetText(GetActiveGadget()))=0
SetActiveGadget(GetActiveGadget() - 1)
ElseIf Len(GetGadgetText(GetActiveGadget())) > 0
nr=Len(GetGadgetText(GetActiveGadget()))
SetGadgetText(GetActiveGadget(), Mid(GetGadgetText(GetActiveGadget()),1,nr-1))
EndIf
EndIf
EndSelect
EndSelect
If Event = #PB_Event_Gadget
If GadgetID = #Lic_1
If Len(GetGadgetText(#Lic_1))=5
SetActiveGadget(#lic_2)
EndIf
ElseIf GadgetID = #Lic_2
If Len(GetGadgetText(#Lic_2))=5
SetActiveGadget(#lic_3)
EndIf
ElseIf GadgetID = #Lic_3
If Len(GetGadgetText(#Lic_3))=5
SetActiveGadget(#lic_4)
EndIf
ElseIf GadgetID = #Lic_4
If Len(GetGadgetText(#Lic_4))=5
SetActiveGadget(#lic_5)
EndIf
ElseIf GadgetID = #Lic_5
If Len(GetGadgetText(#Lic_5))=5
SetActiveGadget(#Btn_Lic)
EndIf
ElseIf GadgetID = #Btn_Lic
ElseIf GadgetID = #Btn_lic_abbr
End
EndIf
EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
End