SetTimerEvent() und mehrere Anweisungen

Sonstiges (nicht kategorisierbar)

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

SetTimerEvent() und mehrere Anweisungen

Beitrag von Manfred »

Hi,

ich bin mir nicht sicher, ob wir das thema schonmal hatten, gefunden habe ich jedenfalls nichts hier.

Ich habe ein SetTimerEvent() um mir die Uhrzeit anzeigen zu lassen. Das klappt auch.

Code: Alles auswählen

SetTimerEvent(100,{|| oUhrzeit:setData(Time())})
Jetzt hatte ich die Idee, noch etwas damit zu verbinden:

Das scheint aber nicht wirklich zu klappen. Ist das so nicht möglich? Oder sagen wir mal anders, es läuft nicht so, wie ich es mir vorstelle. Die Uhrzeit ist falsch und die Funktion wird auch nur 1x aufgerufen, wie es scheint.

Code: Alles auswählen

SetTimerEvent(100,{|| oUhrzeit:setData(Time(),pruefemanuell(oThread,oDatenbank))})
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: SetTimerEvent() und mehrere Anweisungen

Beitrag von brandelh »

die Uhrzeit wird jede Sekunde aufgerufen, ist da die Prüfung schon erledigt ?
sonst geht sie doppelt los ...
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: SetTimerEvent() und mehrere Anweisungen

Beitrag von AUGE_OHR »

brandelh hat geschrieben:die Uhrzeit wird jede Sekunde aufgerufen, ist da die Prüfung schon erledigt ?
der Zugriff auf eine DBF jede Sekunde ... ist die DBF "share" ?

ich würde es so abändern:

Code: Alles auswählen

SetTimerEvent(100,{|| Machmal(oUhrzeit,oThread,oDatenbank) })

PROCEDURE Machmal(oUhrzeit,oThread,oDatenbank)
LOCAL cTime := TIME()
   oUhrzeit:setData(cTime)
   IF SUBSTR(cTime,6,2) = "00" // jede Minute
      pruefemanuell(oThread,oDatenbank))
   ENDIF
RETURN
brandelh hat geschrieben:sonst geht sie doppelt los ...
Nope ! ein Thread der "läuft" wird nicht noch mal gestartet !
gruss by OHR
Jimmy
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: SetTimerEvent() und mehrere Anweisungen

Beitrag von Manfred »

Sorry,

Code: Alles auswählen

********************************************************************************
PROCEDURE pruefeManuell(oThread,oDatenbank)
          STATIC cStartZeit := ""

          MEMVAR oSysPara

          IF ! Empty(cStartZeit)
             IF TimeToSec() - TimeToSec(cStartZeit) >= 10 //60                       // es soll alle 60 Sekunden geprüft werden
                cStartZeit := ""
                IF FILE(oSysPara:cDatenPfad + "\74_web\exportmanuell.txt")
                   PostAppEvent(xbeP_Activate,,,oThread:oPbStart)      // jetzt wird der Manuell Button für Wache gedrückt
                   oDatenbank:loesche_Datei(oSysPara:cDatenPfad + "\exportmanuell.txt")
                ENDIF
             ENDIF
          ELSE
             cStartzeit := Time()                                               // jetzt wird das Interevall gestartet
          ENDIF
          RETURN
so sieht der Rest aus. Ist also nicht spektakulär

Ich habe die Sache mit der Uhrzeit entfernt und den Zähler auf 6000 gesetzt und das klappt dann wohl.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten