Entwickler-Ecke

Sonstiges (Delphi) - Funktion um eine angegebene Uhrzeit starten


sintec - Do 10.05.07 12:09
Titel: Funktion um eine angegebene Uhrzeit starten
Hallo nochmal an alle Helfer,

Kann mir einer verraten wie man eine Funktion um eine bestimmte Uhrzeit (die in ein Editfeld eingegeben wird) ausführt?


noidic - Do 10.05.07 12:33

Timer laufen lassen, im OnTimer-Event Uhrzeiten vergleichen, wenn aktuelle Uhrzeit > eingegebene Uhrzeit, funktion starten.


sintec - Do 10.05.07 12:39

Dass mit Uhr vergleichen habe ich jetzt nicht so ganz verstanden.
Wie würde den das ganze als Code aussehen?


JensLaskowski - Do 10.05.07 12:42

ich würde es so machen:

Doppelklick auf den Timer dann

TimeToStr(now) einer Variable zuweisen und diese Variable dann mittels einer IFFrage mit aktuelle zeit vergleichen.

Mit freundlichen Grüßen
JensLaskowksi


noidic - Do 10.05.07 12:43

Mal so komplett ohne Eingabeprüfung:


Delphi-Quelltext
1:
2:
if StrToTime(Edit.Text) <= time then
  --Funktionsaufruf--


sintec - Do 10.05.07 14:58

user profile iconnoidic hat folgendes geschrieben:
Mal so komplett ohne Eingabeprüfung:


Delphi-Quelltext
1:
2:
if StrToTime(Edit.Text) <= time then
  --Funktionsaufruf--


so funktioniert es nicht ganz, dem Programm ist es irgendwie egal welche Uhrzeit man eingegeben hat, es startet schon früher bzw. gleich nach der Aktivierung.

woran kann es liegen?

hier ist mein Code:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
if strtotime(lsb_time.Items[t]) <= now then
    begin
      btn_sichernClick(Sender);
      inc(t);
    end;
    if lsb_time.Items.Count = t then
      tmr_timecheck.Enabled := false;


Miri - Do 10.05.07 15:06

Kann es sein, dass du auf >= überprüfen müsstest, statt auf <= ?! :gruebel:


sintec - Do 10.05.07 15:19

user profile iconMiri hat folgendes geschrieben:
Kann es sein, dass du auf >= überprüfen müsstest, statt auf <= ?! :gruebel:


Nein ich will ja die Funktion ab einer bestimmten Uhrzeit ausführen.

Aber auf >= reagiert es überhaupt nicht!


Chatfix - Do 10.05.07 15:32

In welchem Format steht denn die Uhrzeit im Edit-Feld?

HH:MM:SS ?


sintec - Fr 11.05.07 09:31

user profile iconChatfix hat folgendes geschrieben:
In welchem Format steht denn die Uhrzeit im Edit-Feld?

HH:MM:SS ?


Die Uhrzeit wird in eine Listbox (lsb_time) übertragen im Format 'hh:mm'!

Ich brauch es nicht auf die Sekunde genau, nur dass er nach einer bestimmten zeit die Funktion ausführt.

//EDIT:
Kann es sein, dass es irgendwie noch mit Datum zusammenhängt?
Weil er führt die Funktion schon vor der gewünschten Uhrzeit aus.


Chatfix - Fr 11.05.07 13:16

Aud der Hilfe von Delphi:

Zitat:
Zu diesem Beispiel gehören ein Eingabefeld und eine Schaltfläche. Wenn der Benutzer eine Uhrzeit im Format HH:MM:SS eingibt, wird dieser String in einen TDateTime-Wert konvertiert. Je nach eingegebener Uhrzeit wird dann eine entsprechende Begrüßung angezeigt.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button1Click(Sender: TObject);

var
  ATime: TDateTime;
begin
  ATime := StrToTime(Edit1.Text);
  if ATime < 0.50 then
    ShowMessage('Good Morning')
  else
    ShowMessage('Good Afternoon');
end;


Vielleicht hilft dir das ja.


sintec - Mo 14.05.07 11:17

Vielen Dank an alle.

ich habe es gelöst, in dem ich das Datum mitangeben lasse.