AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Timer klappt nicht in Dienst

Ein Thema von dingdoi · begonnen am 4. Sep 2004 · letzter Beitrag vom 20. Jan 2005
 
Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#10

Re: Timer klappt nicht in Dienst

  Alt 20. Jan 2005, 08:57
Ja vielen Dank für das Beispiel, aber ich hätte noch ein paar Fragen zu den drei Funktionen

Bei Create und Delete, welche PArameter werden da übergeben, das erste ist jeweils das Handle, aber der Rest? Das Handle steht für das Programm, für das der Timer ist?

Delphi-Quellcode:
CreateTimerQueueTimer(hTimerQTimer, 0, @DoSomething, nil, 60000, 60000, 0);
DeleteTimerQueueTimer(hTimerQTimer, 0, 0);
Was soll die Funktion bewirken?
procedure DoSomething(Context: Pointer; TimeOut: Boolean); stdcall;
Jetzt zur Anwendung des ganzen:

ich habe einen Dienst und mit der folgenden Funktion starte ich den Dienst
Delphi-Quellcode:
procedure TTMService.ServiceStart(Sender: TService; var Started: Boolean);
   begin
      //hier Aufruf des Threads
      TMThread:= TMThread.Create(false);
   end;

Dann habe ich meinen Thread:
Delphi-Quellcode:
constructor TMThread.Create(CreateSuspended: Boolean);
  begin
    inherited Create(CreateSuspended);
    Priority := tpLowest;
    //Hier käme dann CreateTimerQueueTimer() hin?
  end;
Dann gibt es dort die Methode Execute: Hier soll zuerst die Methode FormCreate durchgeführt werden, und danach so die Methode TimerTimer aufgerufen werden, dort wird der Timer dann jeweils enabled = true oder false, je nach Arbeitsschritt. Der Timer ist zu Anfang der Methode erst mal enabled:= false; Wie muss ich das ganze jetzt ändern? Und bleibt der Aufruf der Methode Execute so oder muss ich daran etwas ändern? Kann ich dann schreiben if not Terminated then und dann die Funktion, die Timergesteuert ist? Und dann sollte er die Funktion immer in vorgegebenen Abständen aufrufen?
Delphi-Quellcode:
procedure TMThread.Execute;
   begin
      FormCreate;
      while not Terminated do
         TimerTimer(self);
      Timer.Free;
      ClockTimer.Free;
   end;
Susanne
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:34 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