Spin Gadget triggert zweimal
Verfasst: 08.02.2019 08:18
Mein erstes grösseres Projekt ist ein Adaptierung aus XProfan. Nur bei einem Spin-Gadget habe ich das Problem, dass das 2x triggert. Der relevante Code ist ab Zeile 155:
und Zeile 493:
im File "MainWindow.pbi". Den ganze Sourcecode inkl. lauffähigem Programm findet man auf:
https://www.mikrocontroller.net/topic/467704
Leider habe ich das Konzept mit dem Form-Designer am Anfang nicht verstanden, darum ist auch individueller Code in der Form und damit nicht mehr im Designer editierbar.
Testhalber geht ein Minimalprogramm richtig:
Einen schönen Tag!
Code: Alles auswählen
Spin_1 = SpinGadget(#PB_Any, 150, 48, 120, 20, 0, 127, #PB_Spin_Numeric)
SetGadgetColor(Spin_1, #PB_Gadget_BackColor, RGB(255, 255, 255))
SetGadgetState(Spin_1, 0)
Code: Alles auswählen
Case Spin_1 ;Speed
If #PB_EventType_Change
Holen("XL" + GetGadgetText(Spin_0) + "," +
GetGadgetText(Spin_1) + "," +
Str(GetGadgetState(Checkbox_0)) + "," +
Str(GetGadgetState(Option_0)) + "," +
Str(GetGadgetState(Checkbox_1)) + "," +
Str(GetGadgetState(Checkbox_2)) + "," +
Str(GetGadgetState(Checkbox_3)) + "," +
Str(GetGadgetState(Checkbox_4)))
TextSchreiben(Editor_1, "Lok-Nummer: " +
GetGadgetText(Spin_0) + ": Speed = " +
GetGadgetText(Spin_1) + ", Dir = " +
Str(GetGadgetState(Option_0)) + ", F01234 = " +
Str(GetGadgetState(Checkbox_0)) +
Str(GetGadgetState(Checkbox_1)) +
Str(GetGadgetState(Checkbox_2)) +
Str(GetGadgetState(Checkbox_3)) +
Str(GetGadgetState(Checkbox_4)))
EndIf
https://www.mikrocontroller.net/topic/467704
Leider habe ich das Konzept mit dem Form-Designer am Anfang nicht verstanden, darum ist auch individueller Code in der Form und damit nicht mehr im Designer editierbar.
Testhalber geht ein Minimalprogramm richtig:
Code: Alles auswählen
;GADGET IDs
#Spin0=0
;WINDOW ID
#Window1=0
Global zaehler.l
;WINDOW
OpenWindow(#Window1,243,130,280,131,"Spin",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(#Window1))
SpinGadget(#Spin0,20,16,100,24,0,10, #PB_Spin_Numeric)
;EVENT LOOP
Repeat
EventID=WaitWindowEvent()
Select EventID
Case #PB_Event_Gadget
Select EventGadget()
Case #Spin0
SetGadgetText(#Spin0,Str(GetGadgetState(#Spin0)))
zaehler.l + 1
Debug zaehler
WindowEvent()
EndSelect
EndSelect
Until EventID=#PB_Event_CloseWindow
; IDE Options = PureBasic v4.00 (Windows - x86)
; Folding = -
; EnableXP