Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie kann ich etwas um eine bestimmte Uhrzeit ausführen? (https://www.delphipraxis.net/127397-wie-kann-ich-etwas-um-eine-bestimmte-uhrzeit-ausfuehren.html)

bonsaikatze 12. Jan 2009 17:59


Wie kann ich etwas um eine bestimmte Uhrzeit ausführen?
 
Ich will dass, angenommen um genau 2:30 Uhr, die Aufschrift von Panel1 'Hallo!' lautet.
Wie kann ich das umsetzen?

blink182 12. Jan 2009 18:02

Re: Wie kann ich etwas um eine bestimmte Uhrzeit ausführen?
 
mhm was jetzt wohl unschön ist
du könntest einen timer erstellen und den die ganze zeit die zeit mit 2:30 vergleichen lassen, dazu müsste dein programm allerdings auf sein.

DeddyH 12. Jan 2009 18:03

Re: Wie kann ich etwas um eine bestimmte Uhrzeit ausführen?
 
Wenn es nicht auf die 1/100 Sekunde ankommt, könntest Du in einem Timer die aktuelle Uhrzeit pollen.

[edit]
Zitat:

dazu müsste dein programm allerdings auf sein
Das macht auch Sinn, wenn er die Caption seines Panels setzen will :zwinker: [/edit]

blink182 12. Jan 2009 18:06

Re: Wie kann ich etwas um eine bestimmte Uhrzeit ausführen?
 
ja ^^ :D

bonsaikatze 12. Jan 2009 18:07

Re: Wie kann ich etwas um eine bestimmte Uhrzeit ausführen?
 
Zitat:

Zitat von blink182
ja ^^ :D

HÄ??? ;)

Und das Programm ist natürlich auf.

blink182 12. Jan 2009 18:11

Re: Wie kann ich etwas um eine bestimmte Uhrzeit ausführen?
 
ach egal ;)
hätte ja auch sein können, dass du das programm um 2:30 öffnen wolltest und dann das Panel beschriften, aber so passts es ja

das "ja" hat sich nur auf die antwort davor bezogen, irrelevant

toms 12. Jan 2009 18:30

Re: Wie kann ich etwas um eine bestimmte Uhrzeit ausführen?
 
Alternative zu einem TTimer: TimeSetEvent von MMSystem.

Überlasse ich dem Leser: TimerID und Msg geschickt setzen...

Delphi-Quellcode:
  private
      FTimerID: Integer;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses
  MMSystem;

procedure timeSetEventCallBack(TimerID, Msg, dwUser, dw1, dw2: Cardinal); pascal;
begin
  Form1.Caption := 'Alarm!';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // In 3 Sek die CallBack Procedure aufrufen
  FTimerID := TimeSetEvent(3000, 1000, @timeSetEventCallBack, 0, TIME_ONESHOT);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 if FTimerID <> 0 then
   TimeKillEvent(FTimerID);
end;

bonsaikatze 12. Jan 2009 18:40

Re: Wie kann ich etwas um eine bestimmte Uhrzeit ausführen?
 
Das musst du mir erklären:
Nach 3 sek heißt Form 1 dann 'Alarm!' ?

Das kann man doch auch mit nem ganz normalen Timer machen.

nahpets 13. Jan 2009 07:49

Re: Wie kann ich etwas um eine bestimmte Uhrzeit ausführen?
 
Hallo,

schaue mit Now nach, wie spät es ist, berechne die Millisekunden bis 2:30 und setzte das Ergebnis als Interval für einen TTimer, den Du dann einschaltest. Du musst dann nicht mehr prüfen, wie lange es noch bis 2:30 ist und pollen...

Mache das in diversen Systemüberwachungsdiensten und Programmen, die zu bestimmten Zeiten bestimmte Aufgaben ausführen sollen. Bisher liegt die "Treffgenauigkeit" dieser Methode immer in einem Bereich von < 1 Millisekunde. Genauer geht's mit 'nem Timer halt nicht, reicht für meine Aufgaben aber vollkommen aus :wink:

Probleme gibt es nur, wenn Du zwischenzeitlich die Uhrzeit verstellst 8)

nuclearping 13. Jan 2009 08:25

Re: Wie kann ich etwas um eine bestimmte Uhrzeit ausführen?
 
Zitat:

Zitat von bonsaikatze
Das kann man doch auch mit nem ganz normalen Timer machen.

Meist gibts zu einem Problem mehrere Lösungen. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:16 Uhr.

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