Seite 2 von 2

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

Verfasst: 09.05.2019 20:04
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

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

Verfasst: 10.05.2019 07:55
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?