Autor Beitrag
Bob Murphy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 91

XP, Ubuntu
Delphi 7 SE, Delphi 2007
BeitragVerfasst: Do 05.11.09 12:55 
Moin Moin,

ich habe ein kleines Tool was seinen Dienst erst ab einer bestimmten Uhrzeit verrichten soll.
Das Problem ich gehe meist um 23Uhr schlafen, vorher starte ich noch schnell das Tool, jetzt soll das Tool aber erst zb um 24Uhr anfangen zu arbeiten.
Einfach einen Timer auf 1 Stunde einstellen möchte ich nicht. Auch möchte ich den Taskplaner oder wie das Ding heißt nicht benutzen. Ich stell mir das so vor das man zb in einen Editfeld die gewünschte Uhrzeit eingibt und das Programm dem entsprechend anfängt zu arbeiten.
Wie setzt man sowas geschickt in die Tat um?

LG Bob
kalmi01
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 39



BeitragVerfasst: Do 05.11.09 13:06 
Hi,

Du kannst doch von Deiner Ziel-Zeit (z.B. 23:45) die aktuelle Zeit (z.B. 19:21) abziehen und anschliessen Dein Prg so lange mit sleep schlafen schicken.
Fighter#1
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 787

Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
BeitragVerfasst: Do 05.11.09 14:21 
Naja, also gegen einen Timer, der Sekundenweise läuft spricht ja ansich nix!
So wie kalmi sagt, du berechnest wieviele Sekunden dein Programm warten muss, zB Timestamp von der Startzeit - aktuellen Timestamp.
Und dieser Wert wird bei jedem Timer aufruf um 1 Sekunde abgezogen, bei 0 ist dann die Zielzeit erreicht und du kannst den Funktionsaufruf ausführen.
Sleep ist nicht zu empfehlen, da das Programm zu der Sleep Zeit auf nichts reagiert;)

_________________
Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
Critter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 328
Erhaltene Danke: 3

Windows 7
Delphi 7 Pro.
BeitragVerfasst: Do 05.11.09 14:40 
Hi,
user profile iconFighter#1 hat folgendes geschrieben Zum zitierten Posting springen:
Naja, also gegen einen Timer, der Sekundenweise läuft spricht ja ansich nix!
So wie kalmi sagt, du berechnest wieviele Sekunden dein Programm warten muss, zB Timestamp von der Startzeit - aktuellen Timestamp.
Und dieser Wert wird bei jedem Timer aufruf um 1 Sekunde abgezogen, bei 0 ist dann die Zielzeit erreicht und du kannst den Funktionsaufruf ausführen.

warum dieses Rumgerechne? Was spricht denn dagegen im Timer event einfach mit now die Aktuelle Uhrzeit abzufragen und los zu legen wenn diese >= der Startzeit ist (und der heutige Lauf noch nicht stattgefunden hat)?

critter

_________________
Diejenigen, die grundlegende Freiheiten aufgeben, um ein wenig mehr vorrübergehende Sicherheit zu erkaufen, verdienen weder Freiheit noch Sicherheit.
(Benjamin Franklin;"The Papers of Benjamin Franklin", Vol. 6, Apr. 1, 1755, through Sep. 30, 1756)
Bob Murphy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 91

XP, Ubuntu
Delphi 7 SE, Delphi 2007
BeitragVerfasst: Do 05.11.09 17:03 
Vielen Dank für eure Antworten.
Hab mich jetzt an Critter´s Gedankenanstoß gehalten....

LG Bob
der organist
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 467
Erhaltene Danke: 17

WIN 7
NQC, Basic, Delphi 2010
BeitragVerfasst: Do 05.11.09 20:21 
ansonsten kannst du auch die Zeitdiffenrenz errechnen, und dann als Timerintervall eingeben. Und in die Timerprozedur schreibst du naja, eben deinen Code.

_________________
»Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin