Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Auf Uhrzeit reagieren? (https://www.delphipraxis.net/37386-auf-uhrzeit-reagieren.html)

Akut-Programming 5. Jan 2005 10:48


Auf Uhrzeit reagieren?
 
Hi Leute!

Ich bastle gearde an ner Anwendung, die im Hintergrund läuft und zu einer bestimmten Uhrzeit einen Befehl ausführen soll. Wenn ich mit Hilfe eines Timers die Uhrzeit abfrage und der dann zur angegebenen Zeit einfach nur ShowMessage('Hallo') ausgeben soll, klappts nicht. Kann mir jemand sagen, wie ich z.B. auf die Uhrzeit 16:23 reagieren kann. - Ohne das Sekunden und so weiter im Spiel sind, mir würdes Minuten genau reichen?! :gruebel: Hat da schonmal jemand was in der richtung gemacht?

Gruß,
Sascha

supermuckl 5. Jan 2005 10:52

Re: Auf Uhrzeit reagieren?
 
ja, überprüfe nicht auf die uhrzeit mit = sondern mit >

also if now > wecker then bumm

und den timer gleichzeitig stoppen

Akut-Programming 5. Jan 2005 14:11

Re: Auf Uhrzeit reagieren?
 
das klappt ja alles schonmal prima! :thumb: Wie würde ich das jetzt anstellen, wenn er es jeden Tag ausführen soll? Hätt mich vielleicht mal schon eher damit beschäftigen sollen. :wall: :stupid:

Xipe 5. Jan 2005 14:16

Re: Auf Uhrzeit reagieren?
 
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
//(Edit.Text + ':00') <--- Vereinfachung der Uhrzeit Eingabe

if FormatDateTime ('hh:nn:ss', Now) = (Edit.Text + ':00') then ShowMessage ('juhu!!!!!!');

end;

beispiel mit ner Edit Kompo + Timer

Gruß Xipe

Akut-Programming 5. Jan 2005 14:39

Re: Auf Uhrzeit reagieren?
 
Danke erstmal, aber so wirklich hilfts mir nicht weiter... hier ist mal der Code.
Delphi-Quellcode:
procedure TfrmMain.Timer1Timer(Sender: TObject);
var
   i: integer;
begin
     if FormatDateTime ('hh:nn', Now) = (MaskEdit1.Text)
     //if TimeToStr(NOW) > MaskEdit1.Text
     then begin
          if CheckBox1.Checked=false
          then begin
               Button1.Click;
          end else
          begin
               for i:=0 to ListBox1.Items.Count-1
               do begin
                  ShellExecute(Handle, 'open', pchar(ListBox1.Items.Strings[i]), nil, nil,SW_SHOW);
               end;
          end;
     end;
end;

...

procedure TfrmMain.Button1Click(Sender: TObject);
begin
     if Button1.Caption='Start'
     then begin
          if MaskEdit1.Text = ' : '
          then begin
               Application.MessageBox('Geben Sie zunächst eine Uhrzeit ein','Eingabe fehlt',MB_OK + MB_ICONINFORMATION);
               FocusControl(MaskEdit1);
          end else
          begin
               Button1.Caption:='Stop';
               Image2.Enabled:=false;
               MaskEdit1.Enabled:=False;
               Timer1.Enabled:=true;
          end;
     end else
     if Button1.Caption='Stop'
     then begin
          Timer1.Enabled:=false;
          Button1.Caption:='Start';
          Image2.Enabled:=true;
          MaskEdit1.Enabled:=true;
     end;
end;

supermuckl 5. Jan 2005 14:44

Re: Auf Uhrzeit reagieren?
 
sperr einfach mit einer variable deine ausführ funktion nach der ausführung um xxx uhr

und um 0 uhr setzt du sie wieder zurück, das er erneut auslösen kann

der timer rennt hierbei ununterbrochen
und am besten mit der > methode, da er dann auch mal unsynchron laufen darf

aber menütlich würd es auch gehen mit = so wie kollege sagt :)

Xipe 5. Jan 2005 14:45

Re: Auf Uhrzeit reagieren?
 
ja und was is dein Problem :gruebel:

Akut-Programming 5. Jan 2005 14:55

Re: Auf Uhrzeit reagieren?
 
Zitat:

Zitat von supermuckl
und um 0 uhr setzt du sie wieder zurück, das er erneut auslösen kann

Nur wie mach ich das? Wenn ich´s mit "if TimToStr(NOW) > '00:00:00' ..." mache, dann aktualisiert er die Variable doch auch blos ständig und es läuft aufs gleiche raus?! Ach man, ich verzweifle hier noch :wall:

Akut-Programming 5. Jan 2005 15:06

Re: Auf Uhrzeit reagieren?
 
DENKFEHLER :wall: Das war heut zuviel des Guten.:roteyes: Hab´s jetzt so versucht
Delphi-Quellcode:
if FormatDateTime ('hh:nn', Now) = '00:00' then DoItAgain := 1;
- Ich hoffe so wird´s klappen, aufjeden Fall hat er´s jetzt nur einmal ausgeführt..

supermuckl 5. Jan 2005 15:12

Re: Auf Uhrzeit reagieren?
 
ja so ungefähr
aber optimierter weise kannste da auch boolean nehmen als locking/freischalt variable :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:15 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