Aktuelle Zeit: 23.08.2019 21:29

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Spin Gadget triggert zweimal
BeitragVerfasst: 08.02.2019 08:18 
Offline

Registriert: 22.12.2018 16:07
Wohnort: Viseu de Jos, Rumänien
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:
Code:
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)

und Zeile 493:
Code:
        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

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:
Code:
;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


Einen schönen Tag!

_________________
Gruss Chregu


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Spin Gadget triggert zweimal
BeitragVerfasst: 08.02.2019 09:49 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
Also nach meinem Verständnis sollte WindowEvent() nicht nochmals innerhalb einer
Wait - /WindowEvent() Schleife aufgerufen werden.

Im Hauptcode sollte es:
Code:
If EventType() = #PB_EventType_Change

anstelle von:
Code:
If #PB_EventType_Change

sein!

_________________

Links:
PureBasic Discord
[ENGINE] 2D Engine Nautilus (Win)
[INCLUDE] GLFW 3.3 Library
[MODULE] Bass Library 2.4 (Win)
[LIBRARY] Hexi Binary2Hex (Win)



Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye