Seite 1 von 1

Starttimer() und Variablen

Verfasst: 16.10.2004 23:01
von Serge
Wollte einen Timer aus Toolbar proffesional einbauen:

Code: Alles auswählen

Procedure Counterupdater()
  counter+1
EndProcedure

StartTimer(0,20,@Counterupdater())
Auf die Variable will ich dann im Programm zugreifen
Wenn ich die Variable jedoch Global oder Shared definiere, stürtzt das Programm nach programmstart ab..
jemand eine Lösung?

Verfasst: 16.10.2004 23:31
von Serge
Hm hab das problem umgangen.
Hab rausgefunden dass timegettime_() im gegensatz zu elapsedmilliseconds() und gettickcount_() millisecundengenau ist, so kann ichs also mit zeitabfragen auch lösen.

Verfasst: 17.10.2004 13:10
von sbehrens
Serge hat geschrieben:Hab rausgefunden dass timegettime_() im gegensatz zu elapsedmilliseconds() und gettickcount_() millisecundengenau ist
ähm... ElapsedMilliseconds() ist doch, wie der Name schon sagt auch Millisekundengenau... und GetTickCount_() auch... :?:

mfG
Basti

Verfasst: 17.10.2004 14:02
von DarkDragon
Der Timer funktioniert NUR wenn der Prozess auch ein Fenster besitzt, welches WindowEvent() aufruft:

Code: Alles auswählen

Global counter

OpenWindow(0, 0, 0, 200, 0, #PB_Window_SystemMenu|#PB_Window_TitleBar, "")

Procedure Counterupdater()
  counter+1
  Debug counter
EndProcedure

StartTimer(0, 20, @Counterupdater())
Repeat
  Delay(5)
Until WindowEvent() = #PB_Event_CloseWindow
EndTimer(0)
End

Verfasst: 17.10.2004 17:05
von Andre
DarkDragon hat geschrieben:Der Timer funktioniert NUR wenn der Prozess auch ein Fenster besitzt, welches WindowEvent() aufruft:
.... und dies wäre damit eine Anregung für die Anleitung zu den PureTools. :wink:

Verfasst: 18.10.2004 01:39
von Danilo
Andre hat geschrieben:
DarkDragon hat geschrieben:Der Timer funktioniert NUR wenn der Prozess auch ein Fenster besitzt, welches WindowEvent() aufruft:
.... und dies wäre damit eine Anregung für die Anleitung zu den PureTools. :wink:

Code: Alles auswählen

Procedure Timer1()
  Beep_(800,100)
EndProcedure

StartTimer(1,1000,@Timer1())

Delay(5000)

EndTimer(1)
Delay(1000)

Code: Alles auswählen

Global counter

Procedure Timer1()
  Beep_(800,100)
  counter + 1
EndProcedure

StartTimer(1,500,@Timer1())

For a = 1 To 10
  Delay(500)
  Debug counter
Next a

EndTimer(1)
Delay(1000)

Code: Alles auswählen

Global counter

Procedure Timer1()
  SetGadgetText(1,FormatDate("%hh:%ii:%ss",Date()))
  counter + 1
  SetGadgetText(2,StrU(counter,#LONG))
EndProcedure

OpenWindow(1,200,200,200,200,#PB_WINDOW_SYSTEMMENU,"TimerTest")
  CreateGadgetList(WindowID())
  TextGadget(1,10,10,100,20,FormatDate("%hh:%ii:%ss",Date()))
  TextGadget(2,10,35,100,20,"0")

  StartTimer(1,1000,@Timer1())

Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow

Verfasst: 18.10.2004 06:45
von DarkDragon
:? Ich habs gestern noch mit delay ausprobiert, es hat nicht funktioniert. Nun gehts.

Verfasst: 18.10.2004 10:24
von Wolf Benrath
Hallo Leute !

Hab beim durchsehen Eure Listings eine tolle Sache entdeckt !

Bin Anfänger und habe bei Zähler immer:

zaehler=zaehler + 1 ;geschrieben !

Ihr nehmt:
zaehler + 1 ; und das ist wessentlich kürzer und bestimmt auch
schneller in der Abarbeitung !!!

Danke !

MfG
Wolf Benrath

Verfasst: 18.10.2004 22:36
von Andre
Sorry, Danilo :oops: :D

Läuft auch ohne Fenster bestens, aber damit gibt's zumindest wieder gute Beispiele fürs Archiv. :mrgreen: