Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Differenz 2erDatum in Tmemo (https://www.delphipraxis.net/70115-differenz-2erdatum-tmemo.html)

danku 5. Jun 2006 18:36

Re: Differenz 2erDatum in Tmemo
 
das lied wird nicht geladen.
sobald ich
Delphi-Quellcode:
if dtRemaining ..
außerhalb schreib
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

marabu 5. Jun 2006 20:12

Re: Differenz 2erDatum in Tmemo
 
Ist vielleicht besser, wenn du deinen Code in der Prozedur unterbringst, welche ShowRemainingTime() aufruft:

Delphi-Quellcode:
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;
Gute Nacht

marabu

danku 14. Jul 2006 10:28

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
...

marabu 14. Jul 2006 10:40

Re: Differenz 2erDatum in Tmemo
 
Hallo Daniel,

vielleicht reicht dir schon das:

Delphi-Quellcode:
dtRemaining2 := dtAlarm2 - Now;
if dtRemaining2 < 0 then
  dtRemaining2 := dtRemaining2 + 1;
Grüße vom marabu

danku 14. Jul 2006 10:42

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:
if strtoint(edende.text) =24
then edende.text:='00';
denn 24:##:## nimmt der ja eh nicht an

Edit: ich habs gelöst ;)

marabu 14. Jul 2006 10:53

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:

Zitat von danku
Edit: ich habs gelöst

PS: Vergiss diesen Beitrag auch ...

danku 14. Jul 2006 17:21

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.

danku 15. Jul 2006 11:53

Re: Differenz 2erDatum in Tmemo
 
kann mir einer helfen?
das proggie ist fertig, bis auf das nach 24uhr( 0uhr) problem.

marabu 15. Jul 2006 13:27

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

danku 15. Jul 2006 17:01

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 05:06 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz