Vieleicht noch eine Alternative die auch die verbleibenden Tage berücksichtigt.
Ein ausbaubares Beispiel das mit einem Timer für beliebig viele Stopuhren auskommt.
Der Timer dient nur der Aktualisierung der Daten zur Anzeige.
Je nach dem wie genau mas es mag.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls;
type TForm1 = class(TForm) Timer1: TTimer; BitBtn1: TBitBtn; LabelRestZeit1: TLabel; LabelStartZeit: TLabel; LabelZielZeit: TLabel; procedure BitBtn1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); private public end;
var Form1: TForm1; DTime:array[1..5,1..2] of double; DTimeSet:array[1..5] of boolean; implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject); begin Dtime[1,1]:=date+time; LabelStartZeit.Caption:='Startzeit '+datetimetostr(DTime[1,1]); DTime[1,2]:=date+time+1/3; LabelZielZeit.Caption:='Zielzeit '+datetimetostr(DTime[1,2]); DTimeSet[1]:=true; end;
procedure TForm1.Timer1Timer(Sender: TObject); var d:word; begin if DTimeSet[1] then begin d:=trunc(Dtime[1,2])-trunc(date); Form1.LabelRestZeit1.caption:='Restzeit '+inttostr(d)+' Tage und '+timetostr(Dtime[1,2]-(date+time)); end; end;
end. |
Moderiert von
raziel: Code- durch Delphi-Tags ersetzt.