![]() |
AW: Service & on Execute
Hm ich weiss das meine comments für Belustigung sorgen aber ich stehe wirklich am schlauch! :(
Was für Möglichkeiten gibt es denn noch? Kann ich mir die aktuelle zeit nicht in eine variable schreiben, 5 Minuten dazu adieren und im on execute Event die zeit Pollen ?! Oder würde das zu viele Ressourcen fressen? Lg |
AW: Service & on Execute
Es wurden doch bereits Lösungsmöglichkeiten aufgezeigt, sowohl mit Timer als auch mit Sleep.
|
AW: Service & on Execute
Du hast etliche Möglichkeiten, was gefällt Dir den nicht an dem Beispiel von Rollstuhlfahrer?
|
AW: Service & on Execute
Nun ja soweit ich das probiert habe komme ich mit sleep nicht weiter. Ich muss praktisch ein sleep von 5 Minuten einbauen dh der dienst ist ja zu diesem Zeitpunkt, also wenn er sich im sleep befindet, nicht zu bedienen besser gesagt nicht zu stoppen.
Die timer variante dürfte anscheinend die beste sein nur fehlt mir hierzu das Verständnis! Schliesslich muss ich den timer ja in der on execute procedure abfragen und das verstehe ich nicht ganz. Nur mal damit ich das verstehe: • timer := ttimer.create(Nil) • Timer.enanled := TRUE • und die Milisekunden Muss ich in der on Start procedure einbauen Beim on execute muss ich dann bei While not terminated das on time einbauen und dann in eine von mir definierte procedure übergehen oder?! Wäre die Möglichkeit welche ich oben beschrieben habe nicht auch möglich oder belaste ich den CPU zu sehr wenn ich im on execute Event meine startzeit variable permanent mit der aktuellen zeit vergleiche?! Lg |
AW: Service & on Execute
Nimm doch einfach eine globale Variable oder besser ein privates Feld Deines Dienstes und zähle es hoch. Du kannst dann sowohl aus dem Timer-Event als auch aus der Execute-Methode darauf zugreifen. Genau so wurde das in den Beispielen auch gemacht. Wo hapert es denn noch?
|
AW: Service & on Execute
Du musst gar nichts machen, hast Du Dir das Beispiel mal angeschaut, es ausprobiert?
Einfacher geht es kaum. Der Timer liegt auf dem "Form" Über Intervall im Objektinspektor legst Du die Millisekunden fest, nach denen der Timer selbsttätig die Methode aufruft die Du im Objektinspektor unter Ereignisse/OnTimer siehst. Wenn Du einen neuen Timer drauflegst auf Ereignisse/OnTimer doppelklicken und Du bist in der Quelltextansicht der neu erstellten Methode. Hier schreibst Du das rein was jedesmal nach Ablauf des Timerintervalls passieren soll..... |
AW: Service & on Execute
OMG jetzt kapier ich's, dh das zu machende wird dann in der procedure zb timer1time also die, die angelegt wird wenn ich doppelt drauf klicke.
Das heisst im on execute steht eigentlich nur timer.ontime := angelegte pricedure??!! Bitte sag das ich's kapiert habe :-D |
AW: Service & on Execute
@value is NULL : irgendwas macht mich stutzig:gruebel:
Habe mir mal ein paar anderen Post von Dir angschaut. Also so unbeholfen kannst Du ja nicht sein, das Du nicht mit dieser simplen Aufgabe klar kommst. Oder wie soll man sonst dieses vertsehen 'Du weist nicht wie ein timer funct/ wo soll ich was hinschreiben' etc. Hast du dafür ne Erklärung? |
AW: Service & on Execute
Wenn Du das per Objektinspektor machst, ist die Methode bereits dem Event zugewiesen. Eine händische Zuweisung ist normalerweise nur dann nötig, wenn man die Komponente erst zur Laufzeit erzeugt oder Methoden dynamisch (d.h. situationsabhängig) zuweisen möchte.
|
AW: Service & on Execute
Timer & Dienst keine gute Idee.
Wie wäre es mit Thread-Synchronistationstechniken. z.B. mit waitevent und einen Timeout? Bei beenden des Dienstes wird das Event geschickt, ansonsten lässt du das warten einfach in das Timeout laufen. So kann der Thread/Service sofort beendet werden oder er läuft einfach weiter. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz