Starttimer() und Variablen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Serge
Beiträge: 66
Registriert: 20.09.2004 20:44
Kontaktdaten:

Starttimer() und Variablen

Beitrag 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?
Serge
Beiträge: 66
Registriert: 20.09.2004 20:44
Kontaktdaten:

Beitrag 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.
sbehrens
Beiträge: 274
Registriert: 08.09.2004 18:41
Kontaktdaten:

Beitrag 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
enjoy life... while you can!
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag 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:
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag 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
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

:? Ich habs gestern noch mit delay ausprobiert, es hat nicht funktioniert. Nun gehts.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Wolf Benrath
Beiträge: 57
Registriert: 04.10.2004 10:20

Beitrag 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
Bild
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

Sorry, Danilo :oops: :D

Läuft auch ohne Fenster bestens, aber damit gibt's zumindest wieder gute Beispiele fürs Archiv. :mrgreen:
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Antworten