Autor Beitrag
sunshineh
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Di 28.10.08 10:32 
Hallo,
warum funktioniert das nicht?!

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
temp, temptime : string;
begin
//...temp auslesen -> in temptime steht z.B. 09:27:15
  temptime := FormatDateTime('hh:mm:ss', StrtoTime(temp));
  XMLEinstellTimer.Interval := SecondsBetween(Now,StrtoTime(temptime))*1000;
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 28.10.08 10:40 
Das Datum wird immer noch nicht berücksichtigt. In welchem Forum soll es denn nun weitergehen?
sunshineh Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Di 28.10.08 10:49 
Das Datum ist mir eigentlich egal.
Ich möchte nur, dass der Timer zu der Uhrzeit, die ich in temp gespeichert habe, startet.
wenn ich nun um 9:49Uhr in Temp 13:00 drin stehen hab, soll die OnTimer-Fkt heute um 13:00 starten, wenn ich in Temp 8:00 drin stehen hab, dann also morgen früh um 8:00.
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 28.10.08 10:52 
Und woher soll der Timer wissen, ob heute, morgen oder nächste Woche, wenn Du kein Datum angibst?
sunshineh Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Di 28.10.08 10:56 
Wie kann ich dann sagen, dass er als Datum das heutige nimmt bzw. kann ich Now auch ohne Datum verwenden?
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 28.10.08 11:00 
Heute 00:00:00 ergibt sich aus trunc(Date). Da dann noch Frac(StrToTime(temptime)) dazu und es sollte passen.
sunshineh Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Di 28.10.08 11:14 
Ich hätte es nun so gemacht:


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
  temptime := StrtoTime(FormatDateTime('hh:mm:ss', temp));
  temptimenow := StrtoTime(FormatDateTime('hh:mm:ss', now));
  if temptime < temptimenow then
       XMLEinstellTimer.Interval := ((24*60*60)- SecondsBetween(temptimenow,temptime))*1000
  else
  XMLEinstellTimer.Interval := (SecondsBetween(temptimenow,temptime))*1000;
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 28.10.08 11:18 
Nochmal zum Verständnis: TDateTime ist eine double. Der Vorkommaanteil bestimmt das Datum und der Nachkommaanteil die Uhrzeit. Ich würde nun die aktuelle Uhrzeit (und nur diese) ermitteln und mit temp vergleichen. Wenn temp > jetzt ist, ergibt sich temptime wie oben beschrieben (Datum von heute), ansonsten 1 addieren (enstspricht morgen).
nahpets
Hält's aus hier
Beiträge: 14


Delphi 7
BeitragVerfasst: Di 28.10.08 11:20 
Du darfst von Now nur den Nachkommaanteil nehmen.

ausblenden Delphi-Quelltext
1:
XMLEinstellTimer.Interval := (SecondsBetween(now - trunc(now),temptime))*1000;					
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 28.10.08 11:23 
Zitat:
ausblenden Delphi-Quelltext
1:
now - trunc(now)					
Oder mit Frac ;)
nahpets
Hält's aus hier
Beiträge: 14


Delphi 7
BeitragVerfasst: Di 28.10.08 11:49 
user profile iconDeddyH hat folgendes geschrieben Zum zitierten Posting springen:
Zitat:
ausblenden Delphi-Quelltext
1:
now - trunc(now)					
Oder mit Frac ;)

Ja, hast recht, fiel mir nur gerade nicht ein :-(