Counter mit Stop abbrechen und mit Start weiter zählen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Mijikai
Beiträge: 678
Registriert: 25.09.2016 01:42

Re: Counter mit Stop abbrechen und mit Start weiter zählen

Beitrag von Mijikai »

Eine Variante:

Code: Alles auswählen

EnableExplicit

Procedure.i Demo(Width.i,Height.i)
  Protected window.i
  Protected window_flag.i
  Protected window_msg.i
  Protected button.i
  Protected counter.i
  Protected info.i
  window_flag = #PB_Window_SystemMenu|#PB_Window_ScreenCentered
  window = OpenWindow(#PB_Any,#Null,#Null,Width,Height,"Demo",window_flag)
  If window
    button = ButtonGadget(#PB_Any,10,10,80,20,"Toggle Timer",#PB_Button_Toggle)
    info = TextGadget(#PB_Any,100,10,80,20,"0 sec",#PB_Text_Center|#PB_Text_Border)
    If button And info
      AddWindowTimer(Window,0,1000)
      Repeat
        window_msg = WaitWindowEvent()
        Select window_msg
          Case #PB_Event_CloseWindow
            Break
          Case #PB_Event_Timer
            If GetGadgetState(button)
              counter + 1
              SetGadgetText(info,Str(counter) + " sec")
            EndIf
        EndSelect
      ForEver
    EndIf
    CloseWindow(window)
  EndIf  
EndProcedure

Demo(200,80)

End
Benutzeravatar
silbersurfer
Beiträge: 173
Registriert: 06.07.2014 12:21

Re: Counter mit Stop abbrechen und mit Start weiter zählen

Beitrag von silbersurfer »

@NicTheQuick
Ich wollte tatsächlich nur nicht, dass du Sommertv auf die falsche Fährte bringst. Immerhin war das Problem in seinem ersten Post ja die For-Schleife
stimmt, aus genau diesem Grund habe ich ihn ja auch den AddWindowTimer näher gebracht, seine Frage daraufhin war ob man dieses auch mit Schleifen machen könne
was ich ihn daraufhin bestätigt habe, Schleifen sind ja nichts schlimmes man sollte damit eben nur mit bedacht umgehen z.B. Im CanvasGadget etwas Zeichen u.s.w.
es kam bei euch allerdings so rüber das Schleifen Böse sind und erst garnicht benutzt werden sollen.

@matbal,
Ich hatte früher einfach den EventLoop in eine Prozedur gepackt.
das macht der Form Designer genau so, ich nutze das auch heute noch so, mir ist dabei noch nicht aufgefallen das Bindevent probleme damit hat?
Intel Quad Core 3,2 Ghz - GTX 1060 - BlitzBasic Plus 1.48 , PureBasic 5.70 LTS / Aktuelles Projekt PureCommander
Antworten