Seite 1 von 2
Thread vohrzeitieg benden ?
Verfasst: 26.03.2008 14:33
von Kratermonster
hallo
Ich habe diesen Thread
CreateThread(@mein_timer(), 5)
Code: Alles auswählen
Procedure mein_timer(parameter)
Repeat
If meinaus = 13
ProcedureReturn
EndIf
If parameter = 0
Global fine = 13
ProcedureReturn
EndIf
parameter-1
anzeige.s = FormatDate("%hh:%ii:%ss", parameter)
Delay(1000)
SetGadgetText(#time_0, anzeige)
ForEver
EndProcedure
Das ist ein zähler den ich manchmal schon voher benden will.
Ich hab versuche ihn mit einer Globalen variablen vohrzeitieg auszumachen, "meinaus = 13"
hat nicht geklapt, immer wenn ich das fenster schliese in dem der zähler angezeigt wird macht das hier SetGadgetText(#time_0, anzeige) nen bug.
Weis jemand wie ich den vohrzeitieg stoppen kann ?
mfg Duc
Re: Thread vohrzeitieg benden ?
Verfasst: 26.03.2008 14:40
von Kiffi
Für das, was Du (glaube ich) vorhast, kannst Du besser die Timer-APIs
nehmen: SetTimer_() und KillTimer_()
Kommste mit diesen Infos (+Boardsuche) erst einmal klar? Wenn nicht -> Nochmal nachfragen
Grüße ... Kiffi
Verfasst: 26.03.2008 14:46
von Kratermonster
DAnke aber,
ich brauch nen Thread
weil der time mein Program beinträchtiegt....
(meine fenster werden dann nicht meher richtieg angezeigt...)
mfg duc
Verfasst: 26.03.2008 14:51
von Kiffi
Kratermonster hat geschrieben:ich brauch nen Thread
brauchst Du nicht
Kratermonster hat geschrieben:weil der time mein Program beinträchtiegt....
(meine fenster werden dann nicht meher richtieg angezeigt...)
dann schmeiß mal die Repeat-Forever-Schleife raus.
Grüße ... Kiffi
ähm ?
Verfasst: 26.03.2008 15:00
von Kratermonster
öhm jetzt zählt er aber nicht meher ? naja von 5 auf 4 aber das wars ?
mfg duc
Verfasst: 26.03.2008 15:01
von NicTheQuick
Mach doch einfach 'KillThread()' und gut ist.
Der eben 'meinaus' auf 13 setzen und danach erstmal ein 'WaitThread()' und
danach das Fenster schließen.
Verfasst: 26.03.2008 15:28
von Kratermonster
KillThread(@mein_timer())
Ist ein bissel radikal

Das macht das prog dicht.. "Program bendet"
Eigentlich sole er ja dann mein setings fenster starten....
Code: Alles auswählen
;*** Setings Fenster ***
set:
aus = 0
sett = 0
KillThread(@mein_timer())
CloseWindow(#Window_0)
win2()
auslesn(0)
Repeat
event = WindowEvent()
gadget = EventGadget()
If event
Select event
Case #PB_Event_CloseWindow
CloseWindow(#Window_1)
Global setauss = 0
aus = 1
Case #PB_Event_Gadget
Select gadget
Case #Button_1
Speichern()
CloseWindow(#Window_1)
Global setauss = 0
aus = 1
bstart = 1
EndSelect
EndSelect
EndIf
Delay(10)
Until aus = 1
Aber danach komt nix meher tot...
Re: ähm ?
Verfasst: 26.03.2008 16:27
von Kiffi
Kratermonster hat geschrieben:öhm jetzt zählt er aber nicht meher ? naja von 5 auf 4 aber das wars ?
bin nach wie vor der Meinung, dass Du keinen Thread benötigst. Allerdings
gehe ich auch davon aus, dass Du in der Prozedur lediglich die Zeit anzeigen
willst. Wenn dem so ist, dann reicht der Timer voll und ganz.
Es wäre gut, wenn Du uns ein wenig mehr Informationen über das lieferst,
was Du da eigentlich machst.
Grüße ... Kiffi
// Edit: Hier nochmal 'n Code (da bleibt nix stehen oder hängen):
Code: Alles auswählen
#MeinFenster = 0
#MeinFenster_Uhrzeit = 0
#MeinTimer = 0
Procedure MeineTimerProcedure()
SetGadgetText(#MeinFenster_Uhrzeit, FormatDate("%hh:%mm:%ss", Date()))
EndProcedure
If OpenWindow(#MeinFenster, #PB_Ignore, #PB_Ignore, 300, 300, "")
If CreateGadgetList(WindowID(#MeinFenster))
TextGadget(#MeinFenster_Uhrzeit, 5, 5, 100, 20, "", #PB_Text_Border)
SetTimer_(WindowID(#MeinFenster), #MeinTimer, 1000, @MeineTimerProcedure())
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
KillTimer_(WindowID(#MeinFenster), #MeinTimer)
EndIf
EndIf
Verfasst: 26.03.2008 23:32
von HeX0R
Man sollte die TimerProc aber auch mit den richtigen Parametern deklarieren, sonst sucht man sich evtl. nen Wolf nach Programmabstürzen durch IMAs.
(Is mir mal passiert unter Vista)
Also:
Code: Alles auswählen
Procedure MeineTimerProcedure(hWnd.l, uMsg.l, idEvent.l, dwTime.l)
Verfasst: 26.03.2008 23:55
von Kiffi
HeX0R hat geschrieben:Man sollte die TimerProc aber auch mit den richtigen Parametern deklarieren, sonst sucht man sich evtl. nen Wolf nach Programmabstürzen durch IMAs.
oh, verzeitung! Stimmt, da hast Du recht.
Grüße ... Kiffi