Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi IncMinute tuts nich mehr... (https://www.delphipraxis.net/12830-incminute-tuts-nich-mehr.html)

Lefko 4. Dez 2003 18:25


IncMinute tuts nich mehr...
 
Hallo Freunde :hi: ,

schaut euch folgenden Code an und sagt mir, warum der befehl IncMinute nichts macht!!

hier:

Delphi-Quellcode:
procedure TForm1.FormDblClick(Sender: TObject);
var Jetzt : TTime;
    stunde, minute, dummy : word;
begin
   Jetzt := now;
   DecodeTime(Jetzt, stunde, minute, dummy, dummy);
   if minute mod 5 <> 0
     then
      repeat
       IncMinute(Jetzt);
       DecodeTime(Jetzt, stunde, minute, dummy, dummy);
      until minute mod 5 = 0;
end;
So läuft das zwar, aber es ist eine Endlosschleife, nur weiss ich nicht, warum....

der wert von "minute" bleibt immer gleich!?

MfG Lefko.

OLLI_T 4. Dez 2003 18:52

Re: IncMinute tuts nich mehr...
 
HY Lefko!

Leider kennt mein D5 diese Fkt nicht. Aber wenn es analog zu IncMonth läuft ...:

Delphi-Quellcode:
 Jetzt:=IncMinute(Jetzt);
Könnte mir vorstellen, dass die Fkt nen TDatetime-Wert als Parameter erwartet!

Gruss

OLLI

himitsu 4. Dez 2003 18:53

Re: IncMinute tuts nich mehr...
 
Ein Hallöle von http://www.FrankNStein.de/Smiley-Wolke.gif,

So geht es:
Delphi-Quellcode:
IncMinute := IncMinute(Jetzt);
So kann man die If-Abfrage weglasssen:
Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
  Var Jetzt: TTime;
    stunde, minute, dummy: Word;

  Begin
    Jetzt := now;
    DecodeTime(Jetzt, stunde, minute, dummy, dummy);
    While minute mod 5 <> 0 do Begin
      Jetzt := IncMinute(Jetzt);
      DecodeTime(Jetzt, stunde, minute, dummy, dummy);
    End;
  End;
Aber das ist wohl das Kürzeste:
Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
  Var Jetzt: TTime;
    stunde, minute, dummy: Word;

  Begin
    Jetzt := now;
    DecodeTime(Jetzt, stunde, minute, dummy, dummy);
    {Jetzt := IncMinute(Jetzt, (5 - (minute mod 5)) mod 5);}
    Jetzt := IncMinute(Jetzt, (60 - minute) mod 5); {zweites mod wegoptimiert}
  End;
http://www.delphipraxis.net/images/common/divider.jpg
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif

Lefko 4. Dez 2003 18:55

Re: IncMinute tuts nich mehr...
 
Zitat:

Zitat von OLLI_T
HY Lefko!
Leider kennt mein D5 diese Fkt nicht. Aber wenn es analog zu IncMonth läuft ...:

Wahrscheinlich doch, du musst die Unit DateUtils einbinden!

Zitat:

Zitat von OLLI_T
Könnte mir vorstellen, dass die Fkt nen TDatetime-Wert als Parameter erwartet!

Hab ich auch schon probiert, aber ändert nix.

Zitat:

Zitat von OLLI_T
Delphi-Quellcode:
 Jetzt:=IncMinute(Jetzt);

Werd ich mal kurz probieren...


MfG Lefko.

Lefko 4. Dez 2003 19:10

Re: IncMinute tuts nich mehr...
 
Zitat:

Zitat von himitsu
So geht es:
Delphi-Quellcode:
IncMinute := IncMinute(Jetzt);

Bei mir nicht, genau wie vorher...

Zitat:

Zitat von himitsu
So kann man die If-Abfrage weglasssen:
Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
  Var Jetzt: TTime;
    stunde, minute, dummy: Word;

  Begin
    Jetzt := now;
    DecodeTime(Jetzt, stunde, minute, dummy, dummy);
    While minute mod 5 <> 0 do Begin
      IncMinute := IncMinute(Jetzt);
      DecodeTime(Jetzt, stunde, minute, dummy, dummy);
    End;
  End;
Aber das ist wohl das Kürzeste:
Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
  Var Jetzt: TTime;
    stunde, minute, dummy: Word;

  Begin
    Jetzt := now;
    DecodeTime(Jetzt, stunde, minute, dummy, dummy);
    {IncMinute := IncMinute(Jetzt, (5 - (minute mod 5)) mod 5);}
    IncMinute := IncMinute(Jetzt, (60 - minute) mod 5); {zweites mod wegoptimiert}
  End;

Ne, hab deine optimierte variante genommen, geht trotzdem nicht.....der wert wird nicht verändert.


MfG Lefko.

Kamil 4. Dez 2003 19:15

Re: IncMinute tuts nich mehr...
 
nicht IncMinute := IncMinute(Jetzt,...) sondern Jetzt := IncMinute(Jetzt,...)

Lefko 4. Dez 2003 19:16

Re: IncMinute tuts nich mehr...
 
Hm, hab s mal probiert mit

Delphi-Quellcode:
jetzt := incminute(jetzt);
und das funktioniert...

@himitsu: war das mit dem incminute := incminute(jetzt) nur n schreibfehler? ;)

also, jetzt geht es, danke :)


MfG Lefko.

himitsu 4. Dez 2003 19:21

Re: IncMinute tuts nich mehr...
 
Zitat:

Zitat von OLLI_T
Könnte mir vorstellen, dass die Fkt nen TDatetime-Wert als Parameter erwartet!

Delphi-Quellcode:
Type
  TDateTime = Type Double;
  TDate    = Type TDateTime;
  TTime    = Type TDateTime;
Zitat:

Zitat von Lefko
@himitsu: war das mit dem incminute := incminute(jetzt) nur n schreibfehler?

Nee, falsch kopiert. :oops:

http://www.delphipraxis.net/images/common/divider.jpg
http://www.FrankNStein.de/Smiley-Kuss.gif http://www.FrankNStein.de/Smiley-Spinne.gif http://www.FrankNStein.de/Smiley-Winken.gif


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 Uhr.

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