![]() |
Re: Differenz 2erDatum in Tmemo
das lied wird nicht geladen.
sobald ich
Delphi-Quellcode:
außerhalb schreib
if dtRemaining ..
Delphi-Quellcode:
,
if Now < dtAlarm then
ShowRemainingTime(dtAlarm); if dtRemaining... wirkt der timer auf die memofelder immer als 0. (also die memofelder haben einen 0-wert |
Re: Differenz 2erDatum in Tmemo
Ist vielleicht besser, wenn du deinen Code in der Prozedur unterbringst, welche ShowRemainingTime() aufruft:
Delphi-Quellcode:
Gute Nacht
procedure TDemoForm.SingHaleluja;
begin fileopen := Label2.caption; // ?? with MediaPlayer1 do begin Filename := OpenDialog1.Filename; Open; Play; end; end; procedure TDemoForm.??? var dtAlarm: TDateTime; begin dtAlarm := StrToTime(edhours.Text + ':' + edmin.Text + ':' + edseconds.Text) + StrToDate(cbdatum.Text); if Now < dtAlarm then ShowRemainingTime(dtAlarm) // es hat noch Zeit else SingHaleluja; // jetzt randalieren end; marabu |
Re: Differenz 2erDatum in Tmemo
hm. ich habe ein problem wenn die real-time vor 24:00 (00:00) ist und der benutzer als weckzeit bspw. 00:30 einstellt. wie kann ich das problem wo in der methode lösen?
Delphi-Quellcode:
procedure Tfmclock.timerzeitTimer(Sender: TObject);
... //////// ZEITDAUER IN MIN/////////////////////////////////////// procedure ShowRemainingTime2(dtAlarm2: TDateTime); var s: String; dtRemaining2: TDateTime; hours2, mins2, secs2, msecs2: Word; begin // DecodeTime(Time, aStd, aMin, aSec, aMsec); // Uhrzeit_Ende := StrToDate(WeckDate) + StrToTime(WeckTime); // Wecktime := Timetostr(Uhrzeit_Ende); // Uhrzeit_Verbleib := Now - Uhrzeit_ende; dtRemaining2:= dtAlarm2 - Now; DecodeTime(dtRemaining2, hours2, mins2, secs2, msecs2); hours2 := hours2 + 24 * Trunc(dtRemaining2); meHours.Text := IntToStr(hours2); meMin.Text := IntToStr(mins2); meSeconds.Text := IntTostr(secs2); end; begin ... |
Re: Differenz 2erDatum in Tmemo
Hallo Daniel,
vielleicht reicht dir schon das:
Delphi-Quellcode:
Grüße vom marabu
dtRemaining2 := dtAlarm2 - Now;
if dtRemaining2 < 0 then dtRemaining2 := dtRemaining2 + 1; |
Re: Differenz 2erDatum in Tmemo
schön wärs aber passt leider nicht.
sobald die stunden-anzeige über '00':'00':'00' geht, tut sich nichts. ich habe im onchange stehen:
Delphi-Quellcode:
denn 24:##:## nimmt der ja eh nicht an
if strtoint(edende.text) =24
then edende.text:='00'; Edit: ich habs gelöst ;) |
Re: Differenz 2erDatum in Tmemo
Vergiss meinen Beitrag #24 - du arbeitest ja mit Datumsanteilen, da geht das so nicht. Der gezeigte Code sollte mit Now = 23:30 (heute) und Alarm = 00:30 (morgen) zurecht kommen. Kann es sein, dass dein Problem irgendwo anders auftritt?
marabu Zitat:
|
Re: Differenz 2erDatum in Tmemo
geht doch noch nicht 100pro,
denn jedesmal springt der sobald es größer 00:00:00 ist, auf 23:##:## zurück. |
Re: Differenz 2erDatum in Tmemo
kann mir einer helfen?
das proggie ist fertig, bis auf das nach 24uhr( 0uhr) problem. |
Re: Differenz 2erDatum in Tmemo
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Daniel,
dein in Beitrag #23 gezeigter Code ist in Ordnung, dein Problem scheint woanders zu liegen. Damit man dir helfen kann, musst du den relevanten Quellcode zeigen, den Input und den (falschen und erwarteten) Output beschreiben. Am Besten klappt das, wenn du deinen Code funktional entworfen hast. Wenn du alles in irgendwelche event handler reinquetschst, dann wird die Beschreibung von Input und Output zu komplex. Grüße vom marabu |
Re: Differenz 2erDatum in Tmemo
ich hab mir mal den bsp.progg heruntergeloadet. du hast mich auf eine idee gebracht.
das mit dem "kalenderblatt" war mir klar. nur wusste ich noch nicht wie diese komponente heißt. ich will ja nichts sagen: aber kann es sein das bei dir ein fehler im code ist? ich habe das mal bei mir getestet und bei mir setzt der countdown nach 4sec aus, d.h. es wird nicht weiter nach unten gezählt
Delphi-Quellcode:
procedure Tfmclock.timerzeitTimer(Sender: TObject);
//////// ZEITDAUER IN MIN/////////////////////////////////////// procedure ShowRemainingTime2(dtAlarm2: TDateTime); var dtRemaining2: TDateTime; h, m, s, ms: Word; begin dtRemaining2 := dtAlarm2 - Now; DecodeTime(dtRemaining2, h, m, s, ms); Inc(h, 24 * Trunc(dtRemaining2)); Caption := Format('%.2d:%.2d:%.2d', [h, m, s]); meHours.Text := IntToStr(h); meMin.Text := IntToStr(m); meSeconds.Text := IntTostr(s); end; ///////////////////////////////////// function RestOfSecond: Word; var h, m, s: Word; begin DecodeTime(Now, h, m, s, Result); end; /////////////////////////////////////// begin if cbsignal.Checked=false then begin timerzeit.Enabled:=false; showmessage('Signaldatei auswählen!'); rgeins.Checked:=true; rgzwei.Enabled:=true end else begin edzeit.enabled:=false; sbzeit.Enabled:=false; with Sender as TTimer do begin Enabled := False; if dtpTime.DateTime > Now then begin ShowRemainingTime2(dtpTime.DateTime); InterVal := RestOfSecond; Enabled := True; end else begin //datei abspielen ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:57 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