jeden Tag um 14 Uhr 15

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Andromeda
Beiträge: 120
Registriert: So 4. Jan 2015, 20:18

jeden Tag um 14 Uhr 15

Beitrag von Andromeda »

Hallo,

in meinem Programm möchte ich jeden Tag um 14 Uhr 15 eine Aktion auslösen. Da es dabei auf ein paar Minuten mehr oder weniger nicht ankommt, habe ich einen IdlTimer laufen, der alle 5 Minuten nachschaut, ob es schon 14 Uhr 15 ist. Das funktioniert jetzt auch ganz gut, aber irgendwie habe ich das Gefühl, ein Programmierprofi würde das anders lösen. Aber wie?

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: jeden Tag um 14 Uhr 15

Beitrag von Komoluna »

Wenn das Programm dazwischen nicht laufen muss würde ich das über (je nach OS) Cron-jobs oder die Windows Aufgabenverwaltung lösen.
http://www.netzwelt.de/news/88194-schri ... ows-7.html

Wenn doch, würde ich das auch nicht anders machen.

MFG

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

TerribleCode
Beiträge: 38
Registriert: Di 18. Nov 2014, 22:50
OS, Lazarus, FPC: Windows 7 [x64]; Lazarus 1.6.4 [i386-win32]; FPC 3.0.2 [win32 i386]
CPU-Target: 64Bit

Re: jeden Tag um 14 Uhr 15

Beitrag von TerribleCode »

Hallo Andromeda,

bin zwar kein Profi, aber so ginge es zum Beispiel:

Variable AlertTime definieren:

Code: Alles auswählen

 
var
  AlertTime: String='14:15';
 
(Normalen) Timer mit z.B. 50 Sekunden Intervall auf´s Formular knallen...
In das OnTimer-Event sowas in der Art rein schreiben:

Code: Alles auswählen

 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if FormatDateTime('hh:nn',Now)=AlertTime then
  begin
    Timer1.Enabled:=False; // Damit nur eine Nachricht angezeigt wird.
    ShowMessage('ALERT!');
  end;
end;
 
Und fertig :)

Aber beachte das der Timer-Intervall auf jeden Fall unter einer Minute liegen muss!
Du könntest auch noch einen zweiten Timer einbauen, der den ersten Timer nach 60 Sekunden wieder aktiviert... Dann könnte die Anwendung auch mehr als einmal "Alarm" auslösen.

Allerdings ist diese Lösung wirklich Quick&Dirty, aber besser als nichts ;)

baumina
Beiträge: 152
Registriert: Mo 3. Feb 2014, 14:07
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: jeden Tag um 14 Uhr 15

Beitrag von baumina »

Ich würde beim Eintreten des Timerevents den Interval des Timers verändern (anhand der Uhrzeit berechnen), so dass er erst wieder um 14:15Uhr einen Event auslöst.
.

Antworten