Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wie Prozedur immer zu best. Zeit starten ohne Taskplanner? (https://www.delphipraxis.net/113970-wie-prozedur-immer-zu-best-zeit-starten-ohne-taskplanner.html)

JuliaBecks 17. Mai 2008 14:10


Wie Prozedur immer zu best. Zeit starten ohne Taskplanner?
 
vorab dieser beitrag hat mir nicht geholfen
http://www.delphipraxis.net/internal...tarten&start=0

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

mkinzler 17. Mai 2008 14:15

Re: Wie Prozedur immer zu best. Zeit starten ohne Taskplanne
 
Du könntest einen Dienst scheiben

JuliaBecks 17. Mai 2008 14:17

Re: Wie Prozedur immer zu best. Zeit starten ohne Taskplanne
 
wie würde sowas aussehen können?

Kruemel_02 17. Mai 2008 14:24

Re: Wie Prozedur immer zu best. Zeit starten ohne Taskplanne
 
Wie erstelle ich einen Dienst für WinNT / Win2000 / Win XP

8)

JuliaBecks 17. Mai 2008 14:30

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?

Luckie 17. Mai 2008 14:31

Re: Wie Prozedur immer zu best. Zeit starten ohne Taskplanne
 
Wenn das Programm sowieso permanent läuft, warum dann keinen Timer nehmen?

mkinzler 17. Mai 2008 14:32

Re: Wie Prozedur immer zu best. Zeit starten ohne Taskplanne
 
Doch der Dienst müsste nur mit der Anwendung kommunizieren ( Named Pipes; IPC, ...)

JuliaBecks 17. Mai 2008 14:37

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:
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;
das klappt nicht denn alle 2 Sek startet meine funktion ohne das Zeit geprüft wird :cry:

mkinzler 17. Mai 2008 14:45

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.

JuliaBecks 17. Mai 2008 14:55

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 10:46 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz