AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Countdown

Ein Thema von jfheins · begonnen am 12. Sep 2004 · letzter Beitrag vom 12. Sep 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#1

Countdown

  Alt 12. Sep 2004, 20:03
Ich möchte einen Countdown realisieren.

Angezeigt werden immer Minuten un Sekunden im Format mm:ss, z.B. 02:30. (Schöner wäre natürlich 2:30. Aber wie ?)

Bisher habe ich folgende Lösung:
Delphi-Quellcode:
rocedure TForm1.Timer1Timer(Sender: TObject);
var
 min, sec: Byte;
 smin, ssec: string;
begin
 min := strtoint (copy (Label3.Caption, 1, 2));
 sec := strtoint (copy (Label3.Caption, 4, 2));
 if not ((sec = 0) AND (min = 0)) then
 begin
  if sec = 0 then
  begin
   dec (min);
   sec := 59;
  end
  else dec (sec);
  smin := inttostr (min); ssec := inttostr (sec);
  if length (smin) = 1 then smin := '0' + smin;
  if length (ssec) = 1 then ssec := '0' + ssec;
  Label3.Caption := smin + ':' + ssec;
 end;
end;
Das funktioniert zwar, doch mich dünkt, dass es auch eleganter geht.
Timer-intervall natürlich auf 1000.
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Countdown

  Alt 12. Sep 2004, 20:13
Warum setzt du denn deine Countdownzeit in ein Label und nicht in eine Variable vom DatenType TTime. Damit sparst du dir das unübersichtliche Auseinanderpflücken und Zusammenfriemeln des Labels.

Gruß,
  Mit Zitat antworten Zitat
Benutzerbild von Nothine
Nothine

Registriert seit: 3. Jul 2004
Ort: Mülheim an der Ruhr
198 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Countdown

  Alt 12. Sep 2004, 20:28
wenn du es schaffst (soll auch leute geben die es nich schaffen ) einen gültigen TTime-Wert in bspw. Edit1 reinzuschreiben, kannst du auch einfach den hier machen:
Delphi-Quellcode:
var TimeTill: TTime; //globale Countdown-Variable

...

begin
  TimeTill := Time + StrToTime(Edit1.Text); //initialisieren bitte
  Timer1.Enabled := True; //jetz kanns losgehen
end;

...

procedure Timer1.Timer(Sender: TObject);
begin
  if TimeTill > Time then //solang der Countdown läuft
    Label3.Caption := FormatDateTime('m":"ss',Time-TimeTill); //macht Delphi ganz komfortabel was du willst
  else Timer1.Enabled := False; //und wenn ende is is ende
end;
is ungetestet, sollte aber laufen, sowas sollte ich eigentlich auch um halb 10 noch hinkriegen
if ThisPost is senseless then
ThisPost.WasPostedBy := SomeoneElse();
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Countdown

  Alt 12. Sep 2004, 20:31
Hier meine Lösung:

Delphi-Quellcode:
var
  startzeit : TTime;
  countdown : TTime;

procedure TForm1.Button1Click(Sender: TObject);
var
  stunden : Integer;
  minuten : Integer;
  sekunden : Integer;
begin
  stunden := 0;
  minuten := 2;
  sekunden := 30;
  countdown := EncodeTime (stunden,minuten,sekunden,0);
  startzeit := Now;
  Timer1.Enabled := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  jetzt : TTime
begin
  jetzt := countdown + (startzeit-now);
  if (jetzt > 0 ) then
    Label1.Caption := FormatDateTime ('nn:ss',jetzt)
  else
    Label1.Caption := '00:00';
  Application.ProcessMessages;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#5

Re: Countdown

  Alt 12. Sep 2004, 20:52
Hmmm

Kann mwn von einem TTime-Wert eine Sekunde abziehen ?
  Mit Zitat antworten Zitat
Benutzerbild von Nothine
Nothine

Registriert seit: 3. Jul 2004
Ort: Mülheim an der Ruhr
198 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: Countdown

  Alt 12. Sep 2004, 20:57
klar, wieso denn nicht...
  TimeWert := TimeWert - StrToTime('00:00:01');
if ThisPost is senseless then
ThisPost.WasPostedBy := SomeoneElse();
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Countdown

  Alt 12. Sep 2004, 20:57
ja,
mit
Delphi-Quellcode:
var
 T : TDateTime ;
begin
  T := T - EncodeTime (0,0,1,0) ;
end ;
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Countdown

  Alt 12. Sep 2004, 20:58
Zitat von jfheins:
..Kann mwn von einem TTime-Wert eine Sekunde abziehen ?
Ja

Einfach
Delphi-Quellcode:
begin
  zeit := zeit - (EncodeTime (0,0,1,0));
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Countdown

  Alt 12. Sep 2004, 20:58
Zitat von Sharky:
Einfach
Einfacher (imho)
Delphi-Quellcode:
begin
  zeit := zeit - 1/24/60/60;
end;
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Countdown

  Alt 12. Sep 2004, 21:01
Zitat von sakura:
Einfacher (imho)
Delphi-Quellcode:
begin
  zeit := zeit - 1/24/60/60;
end;
......
Und wie würdest du da rangehen, wenn du statt einer Sekunde, z.B. 2 Stunden, 37 Minuten, 13 Sekunden abziehen willst... Da ist mir EncodeDate doch übersichtlicher
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 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