Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

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 25. Mai 2006 11:32


Differenz 2erDatum in Tmemo
 
Delphi-Quellcode:
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
der hintergrund ist das ich die differenz beider daten
in ein 4-stelliges tmemo basteln möchte.
also wie ein countdown

Zitat:

|------||------| |------||------|
|###||###|: |###||###|
|------||------| |------||------|
Edit: hab gerad das gefunden:
http://www.delphipraxis.net/internal...ifferenz+datum

und wie mach ich das mit dem tmemo?

HuxXx 25. Mai 2006 11:42

Re: Differenz 2erDatum in Tmemo
 
Zitat:

Zitat von danku
Edit: hab gerad das gefunden:
http://www.delphipraxis.net/internal...ifferenz+datum

und wie mach ich das mit dem tmemo?

Was genau willst du in die Memo machen???
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))

danku 25. Mai 2006 11:46

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:
http://www.delphipraxis.net/internal...ifferenz+datum

Hawkeye219 25. Mai 2006 12:06

Re: Differenz 2erDatum in Tmemo
 
Hallo danku,

vielleicht hilft dir auch der folgende Code:

Delphi-Quellcode:
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;
Gruß Hawkeye

danku 26. Mai 2006 12:30

Re: Differenz 2erDatum in Tmemo
 
das steht in dem timer:
(update)

Delphi-Quellcode:
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;
Das geht fast einwandfrei. Den ersten Part der TRadiogroup muss ich demnächst noch bearbeiten.
mir gehts darum, das die weckzeit mit dem weckdatum übereinstimmt.
mein vorschlag war:

Delphi-Quellcode:
if TimeToStr(Now) =strtodate(WeckTime + WeckDatum) then begin
da gibts aber eine fehlermeldung.

kann es vll. auch an
Delphi-Quellcode:
if Uhrzeit_Ende > Time then...
liegen?

danku 27. Mai 2006 14:47

Re: Differenz 2erDatum in Tmemo
 
hat einer einen vorschlag? :gruebel:

Klaus01 27. Mai 2006 15:05

Re: Differenz 2erDatum in Tmemo
 
Zitat:

Delphi-Quellcode:
if TimeToStr(Now) =strtodate(WeckTime + WeckDatum) then begin
da gibts aber eine fehlermeldung.
das kann auch so nicht funktionieren.

Du willst eine String (TimeToStr) mit einem Datum (TDatTime) vergleichen

Delphi-Quellcode:
if now >= strToDateTime(WeckTime + WeckDatum) then
  begin
  end;
Wobei Du auf das Datumformat in strToDateTime achten mußt.

Aus der Hilfe:
Zitat:

Category

date/time routines

function StrToDateTime(const S: string): TDateTime;

Description

Call StrToDate to parse a string that specifies a date and time value. If S does not contain a valid date, StrToDate raises an EConvertError exception.

The S parameter must use the current locale’s date/time format. In the US, this is commonly MM/DD/YY HH:MM:SS format. Specifying AM or PM as part of the time is optional, as are the seconds. Use 24-hour time (7:45 PM is entered as 19:45, for example) if AM or PM is not specified.

Y2K issue: The conversion of two-digit year values is determined by the TwoDigitYearCenturyWindow variable. For more information, see StrToDate.

Note: The format of the date and time string varies when the values of date/time formatting variables are changed.

Grüße
Klaus

danku 28. Mai 2006 18:34

Re: Differenz 2erDatum in Tmemo
 
Delphi-Quellcode:
if now >= strToDateTime(WeckTime + WeckDatum) then
ist vom ansatz her i.o. aber das now hat trotzdem zu der rechte seite (>=) einen zeitkompalierfehler. *wortneuschöpfung :roll:
fehlermeldung: *ist keine gültige datums und urhzeitangabe*

WeckTime:= edhours.Text + ':' + edmin.Text + ':' + edseconds.Text ;
WeckDate:= cbdatum.Text; //die combobox is stressing ...

marabu 28. Mai 2006 20:36

Re: Differenz 2erDatum in Tmemo
 
Andere Reihenfolge und ein Leerzeichen:

Delphi-Quellcode:
if now >= strToDateTime(WeckDatum + ' ' + WeckTime) then
Grüße vom marabu

danku 31. Mai 2006 10:30

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:
now >= strToDateTime(WeckDatum + ' ' + WeckTime)
automatisch den nächsten tag an und in den tmemo (3 felder in stunden, minuten, sekunden)
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 06:09 Uhr.
Seite 1 von 4  1 23     Letzte »    

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