Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Bei gewünschtem Zeitraum etwas tun ??? (https://www.delphipraxis.net/78228-bei-gewuenschtem-zeitraum-etwas-tun.html)

DoktorD 1. Okt 2006 11:43


Bei gewünschtem Zeitraum etwas tun ???
 
Ich habe ein Problem. Ich habe in meinem Programm eine Uhrzeit- und eine Minuteneingabe.
Jetz soll irgendwie geprüft werden, ob dieser Zeitpunkt erreicht wird, und wenn er erreicht wird soll für den Zeitraum von ??? Minuten (Minuteneingabe) etwas passieren.

Wie würdet Ihr das realisieren? Ich weiß irgendwie nicht weiter, denn wenn ich ja Abfrage ob die eine Zeit größer ist als die andere kannn es ja auch passieren, dass es dann irgendwann 0:01 Uhr ist und die Zeit ist ja kleiner wie 23:59 Uhr obwohl sie ja danach ist und größer sein müsste.

Danke für Eure Hilfe.

Neutral General 1. Okt 2006 11:47

Re: Bei gewünschtem Zeitraum etwas tun ???
 
Ich hab das Problem auchmal gehabt.. Du erhöhst einfach den Tag der eingegeben TDateTime mit IncDay(TDateTime) und schon bist du einen Tag weiter und es müsste klappen...

mkinzler 1. Okt 2006 11:48

Re: Bei gewünschtem Zeitraum etwas tun ???
 
Schau dir mal die Unit DateUtils an.

benst 1. Okt 2006 13:50

Re: Bei gewünschtem Zeitraum etwas tun ???
 
Lösungsvorschlag:

-2 DateTimePicker (erste: Kind:=dtkDate, zweite Kind:=dtkTime)
-1 Edit
-1 Button
-2 Timer

DateTimePicker: Startzeitpunkt
Edit: gewünschte Länge in Minuten
Button: Start

Delphi-Quellcode:
procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
  DateTimePicker2.DateTime := DateTimePicker1.DateTime;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Timer1.Enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if now >= DateTimePicker2.Time then
    begin
    Timer1.Enabled:=false;
    Timer2.Enabled:=true;
end;


procedure TForm1.Timer2Timer(Sender: TObject);
begin
  if now >= DateTimePicker2.Time + 1/(24*60)*StrToFloat(Edit1.Text) then
    begin
    Timer2.Enabled := false;
    exit;
    end;
    //do something
end;

//optional
procedure TForm1.FormCreate(Sender: TObject);
begin
  DateTimePicker1.DateTime := now;
  DateTimePicker2.DateTime := now;
end;
Gruß
Ben
P.S.: Frag nach, falls du es nicht verstehtst!


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 Uhr.

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