Einzelnen Beitrag anzeigen

shAd

Registriert seit: 26. Jul 2004
Ort: Stuttgart
19 Beiträge
 
Delphi 7 Professional
 
#1

Probleme mit DateTimePicker

  Alt 16. Okt 2004, 21:01
Wünsche euch einen guten Abend,

Ich versuche einen Countdown zu schreiben, ich habe mir als Eingabemöglichkeit nen DateTimePicker ausgesucht, da falscheingaben dort nicht möglich sind, und er mir zumindestens eigentlich schon alles im richtigen Format liefert.

Nun habe ich mir eine Funktion geschrieben:

Code:
  private
    { Private-Deklarationen }
    function startcountdown(Wert: TTime): TTime;
....
function TForm1.startcountdown(Wert: TTime): TTime;
begin
ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+
    'einstellungen.ini');
Timer := Time + Wert;
Ini.WriteTime('Main','Countdown Time',Wert);
sndPlaySound(nil, snd_sync or snd_NoDefault);

DateTimePicker1.Time := Wert;
Form1.FormStyle := fsNormal;
Timer1.Enabled := TRUE;
Form1.Color := clTeal;
Label1.Font.Color := clRed;

end;
Mit ihr wird der Countdown gestartet.

Aufgerufen habe ich sie so:

Code:
startcountdown(DateTimePicker1.Time);
Stoppen ist im OnTimer Objekt meines Timers. Und sieht so aus:

Code:
  if(Time <> Timer) then begin
     Label1.Caption := FormatDateTime('hh":"mm":"ss',Time-Timer);
     Form1.Caption := 'Count-O-mAt - ' + FormatDateTime('hh":"mm":"ss',Time-Timer);
     Application.Title := FormatDateTime('hh":"mm":"ss',Time-Timer) + ' - Count-O-mAt';
     CoolTrayIcon1.Hint := FormatDateTime('hh":"mm":"ss',Time-Timer) + ' Stunden verbleibend';
     ......
  end
  else begin
  Timer1.Enabled := FALSE;
  .....
  Und die anderen Dinge die gemacht werden sollen wenn der Timer durch ist
  .....
Nun habe ich seitdem ich von MaskEdit1 auf den DateTimePicker umgestiegen bin das Problem, das er zwar brav bis 0 runtercounted, dann aber bei 23:59:59 wieder anfängt. Und die Bedingung - Timer ist nichtmehr gültig tirtt irgendnwie nicht mehr ein

Programm liefert auch ne Warnung beim Compilieren: "Rückgabewert von startcountdown könnte undefiniert sein". Wobei so wie ich das sehe hat, und braucht meine Funktion keinen Rückgabewert.

Vielleicht hilft mir jemand auf die Sprünge, sieht mir nach nem ganz bösen logischem Fehler aus.

Vielen Dank schonmal im Vorraus für eure Hilfe!

Viele Grüße
shAd
Er erreichte einen Speisesaal. Wenn man an dem dort stehenden langen Tisch Platz nahm, so konnte man ziemlich sicher sein, daß die Leute am gegenüberliegenden Ende in einer anderen Zeitzone saßen.
- Terry Pratchett in Wachen! Wachen!
  Mit Zitat antworten Zitat