05. april 2004 - 23:42
Der er
11 kommentarer og 1 løsning
nedtælling til indtastet tidpunkt
Hvordan kan man lave en nedtælling, som tæller ned til et bruger indtastet tidspunkt? hvis fx brugeren taster 05:00:00 og klokken er 21:00:00, skal den starte en nedtælling som viser tiden tilbage Dvs. at den skal tage højde for, at det godt kan krydse midnat
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
06. april 2004 - 00:44
#1
En Label (Label1), en Edit (edEndTime), en Button (btnStart) og en Timer (Timer)... procedure TForm1.btnStartClick(Sender: TObject); begin EndTime := StrToDateTime(edEndTime.Text); Timer.Enabled := True; end; procedure TForm1.TimerTimer(Sender: TObject); begin if Frac(Now) > EndTime then Label1.Caption := FormatDateTime('hh:nn:ss',1 - (Frac(Now) - Frac(EndTime))) else Label1.Caption := FormatDateTime('hh:nn:ss',Frac(EndTIme) - Frac(Now)) end;
06. april 2004 - 01:03
#2
Den duer ikke helt.... Hvis man sætter det ene tidspunkt til 21:00:00, og det andet til 03:00:00 så skriver den at forskellen er 18:00:00 - og det passer jo ikke helt - det er jo 6:00:00
06. april 2004 - 01:11
#3
Hvis mig lige hele din kode... I mit eks. er der kun et tidspunkt at sætte - sluttidspunktet
06. april 2004 - 01:20
#4
Jeg har brug for, at begge tidspunkter er noget jeg indtaster procedure TMainform.BtnStartDelayClick(Sender: TObject); var Tid1,tid2: Tdatetime; begin If RadioWhishDone.Checked = true Then Begin Tid1 := strtotime('03:00:00'); tid2 := strtotime('21:00:00'); if Frac(tid1) > tid2 then Label3.Caption := FormatDateTime('hh:nn:ss',1 - (Frac(tid1) - Frac(tid2))) else Label3.Caption := FormatDateTime('hh:nn:ss',Frac(tid2) - Frac(tid1)); label3.Caption := datetimetostr(datetimediff(tid1,tid2)); End;
06. april 2004 - 01:20
#5
har prøvet at bytte om på tid1 og tid2 - men det giver samme resultat
06. april 2004 - 01:26
#6
Jamen, så er forudsætningerne jo lidt anderledes... Skal det så forstås, at hvis du taster '22:00' i starttid og '23:00' i sluttid, så skal der ligegyldigt hvad kl. ellers er tælles 1:00,0:59 etc?
06. april 2004 - 01:29
#7
yeps
06. april 2004 - 01:30
#8
og start = 23:00:00, slut = 01:00:00 så skal der tælles: 2:00:00 .. 1:59:59 .. 1:59:58 ......
06. april 2004 - 01:52
#9
Denne skulle virke... unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Timer: TTimer; edEndTime: TEdit; btnStart: TButton; Label1: TLabel; edStartTime: TEdit; procedure btnStartClick(Sender: TObject); procedure TimerTimer(Sender: TObject); private { Private declarations } EndTime : TDateTime; TimeDiff : TDateTime; public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.btnStartClick(Sender: TObject); var StartTime,EndTime : TDateTime; begin StartTime := StrToTime(edStartTime.Text); EndTime := StrToTime(edEndTime.Text); if StartTime > EndTime then TimeDiff := (1 - (StartTime - EndTime)) + Now else TimeDiff := (EndTime - StartTime) + Now; Timer.Enabled := True; end; procedure TForm1.TimerTimer(Sender: TObject); begin Label1.Caption := FormatDateTime('hh:nn:ss',TimeDiff - now); end; end.
06. april 2004 - 01:53
#10
Altså du beregner tidsforskellen mellem dit start og sluttidspunkt. Denne ligger du til kl. NU og så er det en simpel ting at tælle ned..
06. april 2004 - 09:47
#11
takker du... Så virker det :D
06. april 2004 - 12:15
#12
:-)
Kurser inden for grundlæggende programmering