![]() |
Differenz 2erDatum in Tmemo
Delphi-Quellcode:
der hintergrund ist das ich die differenz beider daten
var zeit1,zeit2:TTime;
Pufferhours,Pufferminutes,Pufferseconds:integer; ... zeit1:=(Now); zeit2:=strtotime(wecktime); Pufferhours:= HoursBetween(zeit1,Zeit2); Pufferminutes:= MinutesBetween(zeit1,Zeit2); Pufferseconds:= SecondsBetween(zeit1,Zeit2); //erst mal als idee um die zeitdifferenz zu sehen label7.Caption:=inttostr(Pufferhours)+':'+ inttostr(Pufferminutes)+':'+ inttostr(Pufferseconds); //irgendwie funzt das noch nicht in ein 4-stelliges tmemo basteln möchte. also wie ein countdown Zitat:
![]() und wie mach ich das mit dem tmemo? |
Re: Differenz 2erDatum in Tmemo
Zitat:
Bei dem Topic gibt es ja viele Funktionen... Wenn du was in eine Memo einfügen willst, dann wandle es in einen String um (DateToStr(..)) und dann füg das ein (Bsp: Memo1.lines.Add(DateToStr(variable)) |
Re: Differenz 2erDatum in Tmemo
naja ich will in dem memo die zeitdifferenz von wecktime und realer time wiedergeben.
wenn z.b. die weckzeit in 5min ist, dann soll der das so in die 4tmemos schreiben: 05:00 04:59... until 00:00 jo habs hier im letzten eintrag gefunden: ![]() |
Re: Differenz 2erDatum in Tmemo
Hallo danku,
vielleicht hilft dir auch der folgende Code:
Delphi-Quellcode:
Gruß Hawkeye
procedure Demo;
var Wecken : TDateTime; Restzeit : Real; s : string; begin Wecken := Today + StrToTime('17:00'); Restzeit := Wecken - Now; if (Restzeit < 0) then s := 'abgelaufen vor %d Tag(en) %s Stunden' else s := 'noch %d Tag(e) %s Stunden'; ShowMessage (Format(s, [Trunc(Abs(Restzeit)), TimeToStr(Frac(Restzeit))])); end; |
Re: Differenz 2erDatum in Tmemo
das steht in dem timer:
(update)
Delphi-Quellcode:
Das geht fast einwandfrei. Den ersten Part der TRadiogroup muss ich demnächst noch bearbeiten.
WeckTime:= edhours.Text + ':' + edmin.Text + ':' + edseconds.Text ;
WeckDate:= cbdatum.Text; } //**********Dauer vorgegeben if rgeins.Checked then if not canvas.TextWidth(edzeit.Text)>1 then edzeit.setfocus else if canvas.TextWidth(edzeit.text)>1 then if cbsignal.Checked=false then begin // opendialog1.Execute; cbsignal.checked:=true; timer.Enabled:=true; end else timer.Enabled:=true; //**********FESTE UHRZEIT if rgzwei.Checked then if cbsignal.checked=false then begin cbsignal.checked:=true; end; if TimeToStr(Now) =WeckTime then begin fileopen:= Label2.caption; With MediaPlayer1 do begin Filename := opendialog1.filename; Open; Play; timer.Enabled:=false; end; end; //************BUFFER IN MEMO DecodeTime(Time, aStd, aMin, aSec, aMsec); //now := Timetostr(Time); Uhrzeit_Ende := strtoTime(Wecktime); Wecktime:=Timetostr(Uhrzeit_Ende); Uhrzeit_Verbleib := Time - Uhrzeit_ende; Buffer := timetostr(Uhrzeit_Verbleib); if Uhrzeit_Ende > Time then begin Std := copy(Buffer, 1,2); Min := copy(Buffer, 4,2); Sec := copy(Buffer, 7,2); bsec := strtoint(Sec) +1; mehours.text:=std; memin.Text:=min; meseconds.text:=inttostr(bsec); end else begin Std := copy(Buffer, 1,2); Min := copy(Buffer, 4,2); bstd := 23-strtoint(std); bmin := 59-strtoint(min); if asec >0 then bsec := 60-asec else bsec := 0; mehours.text:=inttostr(bstd); memin.Text:=inttostr(bmin); meseconds.text:=inttostr(bsec); end; mir gehts darum, das die weckzeit mit dem weckdatum übereinstimmt. mein vorschlag war:
Delphi-Quellcode:
da gibts aber eine fehlermeldung.
if TimeToStr(Now) =strtodate(WeckTime + WeckDatum) then begin
kann es vll. auch an
Delphi-Quellcode:
liegen?
if Uhrzeit_Ende > Time then...
|
Re: Differenz 2erDatum in Tmemo
hat einer einen vorschlag? :gruebel:
|
Re: Differenz 2erDatum in Tmemo
Zitat:
Du willst eine String (TimeToStr) mit einem Datum (TDatTime) vergleichen
Delphi-Quellcode:
Wobei Du auf das Datumformat in strToDateTime achten mußt.
if now >= strToDateTime(WeckTime + WeckDatum) then
begin end; Aus der Hilfe: Zitat:
Klaus |
Re: Differenz 2erDatum in Tmemo
Delphi-Quellcode:
ist vom ansatz her i.o. aber das now hat trotzdem zu der rechte seite (>=) einen zeitkompalierfehler. *wortneuschöpfung :roll:
if now >= strToDateTime(WeckTime + WeckDatum) then
fehlermeldung: *ist keine gültige datums und urhzeitangabe* WeckTime:= edhours.Text + ':' + edmin.Text + ':' + edseconds.Text ; WeckDate:= cbdatum.Text; //die combobox is stressing ... |
Re: Differenz 2erDatum in Tmemo
Andere Reihenfolge und ein Leerzeichen:
Delphi-Quellcode:
Grüße vom marabu
if now >= strToDateTime(WeckDatum + ' ' + WeckTime) then
|
Re: Differenz 2erDatum in Tmemo
das passt aber mit dem datum immer noch nicht richtig.
wenn das weckdate (bsp: 06:45:00) ist und die relle zeit 14:15, dann nimmt der ja anhand
Delphi-Quellcode:
automatisch den nächsten tag an und in den tmemo (3 felder in stunden, minuten, sekunden)
now >= strToDateTime(WeckDatum + ' ' + WeckTime)
wird die differenz geschrieben, aber sobald man eben nicht das datum von morgen sondern bspw. erst in 3tagen auswählt, berechnet der immer nur die differenz zum nächsten tag. :gruebel: vll. muesste ich WeckDate:= cbdatum.Text; anders definieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz