Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zeitrechner funktioniert nicht wie er soll (https://www.delphipraxis.net/34333-zeitrechner-funktioniert-nicht-wie-er-soll.html)

Chucky_88 21. Nov 2004 13:08

Re: Zeitrechner funktioniert nicht wie er soll
 
wenn du mir sagst wo ich die onlinehilfe finde ...

Sharky 21. Nov 2004 13:10

Re: Zeitrechner funktioniert nicht wie er soll
 
Zitat:

Zitat von Chucky_88
wenn du mir sagst wo ich die onlinehilfe finde ...

Tippe im Editor von Delphi die genannte Funktion ein. Markiere sie und drücke dann F1 ;-)

Jelly 21. Nov 2004 13:10

Re: Zeitrechner funktioniert nicht wie er soll
 
Zitat:

Zitat von Chucky_88
wenn du mir sagst wo ich die onlinehilfe finde ...

Das ist nicht dein Ernst, oder... Noch nie die magische Taste "F1" benutzt.

Chucky_88 21. Nov 2004 13:12

Re: Zeitrechner funktioniert nicht wie er soll
 
ahhhhh da

Chucky_88 21. Nov 2004 13:34

Re: Zeitrechner funktioniert nicht wie er soll
 
Super es läuft nun FETTES MERCI an alle !!!

Thx bye =)

Jelly 21. Nov 2004 14:05

Re: Zeitrechner funktioniert nicht wie er soll
 
Zitat:

Zitat von Chucky_88
Super es läuft nun FETTES MERCI an alle !!!

Der Vollständigkeit halber ist es hier im Forum üblich, die Lösung auch zu posten, damit andere auch eventuell was von lernen.

Chucky_88 21. Nov 2004 17:46

Re: Zeitrechner funktioniert nicht wie er soll
 
Delphi-Quellcode:
Procedure TUmrechner.BtEndzeitClick(Sender: TObject);
var
Eingabe, gZeit, gStunden, gMinuten, gSekunden     : Integer;
sysStunden, sysMinuten, sysSekunden, sysMsekunden: word;
Aktuell                                         : TDateTime;
begin
  if BtSek_zu_St.visible = true
  then begin

  Eingabe       := StrToInt (EdEingabe.Text);
  aStunden      := Eingabe div 3600;
  aMinuten      := (Eingabe - (aStunden * 3600)) div 60;
  aSekunden     := Eingabe - ((aStunden * 3600) + (aMinuten * 60));
  EdAusgabe.Text := (IntToStr (aStunden)) +' : ' +(IntToStr (aMinuten)) +' : ' +(IntToStr (aSekunden));

  Aktuell  := Now;
  DecodeTime(aktuell, sysStunden, sysMinuten, sysSekunden, sysMsekunden);

  gZeit    := (Eingabe + (sysStunden * 3600) + (sysMinuten * 60) +  (sysSekunden));
  gTage    := gZeit div 86400;
  gStunden := (gZeit - (gTage * 86400)) div 3600;
  gMinuten := (gZeit - ((gTage * 86400) + (gStunden * 3600))) div 60;
  gSekunden := gZeit -  ((gTage * 86400) + (gStunden * 3600) + (gMinuten * 60));
  if gZeit  = 0
    then EdEndzeit.Text := IntToStr (gStunden) + ':' + IntToStr (gMinuten) + ':' + (IntToStr (gSekunden) + ' Uhr')
    else
      if gTage = 1
        then EdEndzeit.Text := ' Morgen um ' + IntToStr (gStunden) + ':' + IntToStr (gMinuten) + ':' + IntToStr (gSekunden) + ' Uhr'
        else EdEndzeit.Text := ' In ' + IntToStr (gTage) + ' Tagen um ' + IntToStr (gStunden) + ':' + IntToStr (gMinuten) + ':' + IntToStr (gSekunden) + ' Uhr';

Chucky_88 21. Nov 2004 18:00

Re: Zeitrechner funktioniert nicht wie er soll
 
Jedoch hab ich wieder ein Neues Problem:
Das mit dem zeit ausrechnen ist nun OK, jedoch möchte ich einen Countdown darunter.
Das ist in einen Counter geschrieben. Er steht standartmäßig auf enabled := false;
Er wird durch einen Button aktiviert und läuft jede Sekunde durch:

Delphi-Quellcode:
procedure TUmrechner.TiCounterTimer(Sender: TObject);
var
cTage, cStunden, cMinuten, CSekunden : Integer;
begin
  cTage    := gTage;   // Das ist aus anderen vorherigen Funktionen übernommen
  cStunden := aStunden; // Die Werte dürfen halt nur im Counter geändert werden.
  cMinuten := aMinuten; // Dafür die doppelten Variablen.
  cSekunden := aSekunden;

If (cSekunden > 0)
  then cSekunden := cSekunden -1;

If (cSekunden = 0)
  then
     if (cMinuten > 0)
     then begin
      cMinuten := cMinuten -1;
      cSekunden := 59;
     end
     else
       if (cStunden > 0)
       then begin
        cStunden := cStunden -1;
        cMinuten := 59;
       end
       else
         if (cTage > 0)
         then begin
          cTage := cTage -1;
          cStunden := 23;
          cMinuten := 59;
         end
         else
           if (cSekunden = 0) and (cMinuten = 0) and (cStunden = 0) and (cTage = 0)
           then TiCounter.Enabled := false;

EdCounter.Text := IntToStr(cTage) +':' +IntToStr(cStunden) +':' +IntToStr(cMinuten) +':' +IntToStr(cSekunden);

end;

Das Problem dabei ist: Der counter läuft nicht weiter. Er Zeigt den Grundwert an aber nichts danach ... Ich weiß nicht was daran falsch ist. Der Timer soll bei jedem durchgang eine Sekunde runter rechnen. Halt ein Countdown mit Tagen - Stunden - Minuten und Sekunden.
Bitte helft mir ...

Mfg Chucky

Jelly 21. Nov 2004 18:07

Re: Zeitrechner funktioniert nicht wie er soll
 
Zitat:

Zitat von Chucky_88
Delphi-Quellcode:
  cTage    := gTage;   // Das ist aus anderen vorherigen Funktionen übernommen
  cStunden := aStunden; // Die Werte dürfen halt nur im Counter geändert werden.
  cMinuten := aMinuten; // Dafür die doppelten Variablen.
  cSekunden := aSekunden;

Bei jedem Timer Event setzt du cStunden, cMinuten und cSekunden ja immer wieder auf den gleichen Wert. Also liefert deine Rechnung in der Prozedur auch immer den gleichen Endwert.

Chucky_88 21. Nov 2004 18:12

Re: Zeitrechner funktioniert nicht wie er soll
 
ahsooo ok
Ich habe die Variablen jetzt einfach in das Forumular eingesetzt. Also als Formular Variablen und dann wenn der Counter durch den Button gestartet wird, werden die variablen gesetzt. OK Frage beantwortet und es funtzt :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:39 Uhr.
Seite 2 von 2     12   

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