![]() |
Wie Prozedur immer zu best. Zeit starten ohne Taskplanner?
vorab dieser beitrag hat mir nicht geholfen
![]() Hallo Delphigemeinde, wie schaffe ich es in meinem Programm, welches permanent läuft eine bestimmte Procedure z.b "ReadNews" zu einer bestimmten Zeit zu starten. Die Zeitspanne "von" bis "bis" wird der User eingeben. Z.b von 14:00 bis 16:00 immer Nachmittags. kann ich irgendwie im Timer den interval aus dem Abstand der "bis-zeit" und der nächsten "von-Zeit" setzen oder wie würdet ihr sowas machen? danke für die tipps. Julia |
Re: Wie Prozedur immer zu best. Zeit starten ohne Taskplanne
Du könntest einen Dienst scheiben
|
Re: Wie Prozedur immer zu best. Zeit starten ohne Taskplanne
wie würde sowas aussehen können?
|
Re: Wie Prozedur immer zu best. Zeit starten ohne Taskplanne
|
Re: Wie Prozedur immer zu best. Zeit starten ohne Taskplanne
das würde bedeuten ich müsste mein ganzes programm umschreiben und nicht eine normale Anwendung erstellen sondern eine Dienstanwendung?
das würde ja mein problem "zu bestimmter zeit eine Procedur starten während das programm immer läuft" doch nicht lösen oder? |
Re: Wie Prozedur immer zu best. Zeit starten ohne Taskplanne
Wenn das Programm sowieso permanent läuft, warum dann keinen Timer nehmen?
|
Re: Wie Prozedur immer zu best. Zeit starten ohne Taskplanne
Doch der Dienst müsste nur mit der Anwendung kommunizieren ( Named Pipes; IPC, ...)
|
Re: Wie Prozedur immer zu best. Zeit starten ohne Taskplanne
belastet der timer arg mein system während er sag ich mal 24 stunden wartet bis erneut 13:00 Nachmittags ist und meine Funktion aufruft?
wie könnte die implementierung aussehen? irgendwie so?
Delphi-Quellcode:
das klappt nicht denn alle 2 Sek startet meine funktion ohne das Zeit geprüft wird :cry:
procedure TForm1.FormCreate(Sender: TObject);
var timer : TTimer; begin Timer := TTimer.Create(self); Timer.Interval := 2000; if now = StrToDatetime(DateToStr(Now)+'14:00:00') then Timer.Enabled := True; Timer.OnTimer := StarteFunktion; end; |
Re: Wie Prozedur immer zu best. Zeit starten ohne Taskplanne
Du sagst es ihr ja auch, und dann wird die Funktion aufgerufen. Du musst in der Eventmethode die Uhrzeitünerprüfung durchführen und dann ggf die gewünschte Aktion ausführen.
|
Re: Wie Prozedur immer zu best. Zeit starten ohne Taskplanne
könnte das dann vielleicht so funktionieren?
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var timer : TTimer; begin Timer := TTimer.Create(self); Timer.Interval := 2000; Timer.Enabled := True; Timer.OnTimer := StarteFunktion; end; procedure TForm1.StarteFunktion; begin // Prüfen ob die Anfangszeit erreicht ist if now = StrToDatetime(DateToStr(Now)+'14:00:00') then begin // Timer ausschalten timer.Enabled := false; // Wiederholen bis die Endzeit erreicht ist repeat StarteEineBestimmteProcedure; until now >= StrToDatetime(DateToStr(Now)+'16:00:00'); // Timer wieder einschalten timer.Enabled := True; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:38 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 by Thomas Breitkreuz