AGB  ·  Datenschutz  ·  Impressum  







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

Countdown erstellen

Ein Thema von XPLOSIV · begonnen am 13. Sep 2008 · letzter Beitrag vom 13. Sep 2008
Antwort Antwort
XPLOSIV

Registriert seit: 31. Aug 2007
74 Beiträge
 
#1

Countdown erstellen

  Alt 13. Sep 2008, 15:38
Ich wollte mal fragen wie ich einen Countdown realisieren kann ?
Also ein Label mit einer Zeit die runterläuft.

Leider hab ich keine Ahnung wie ich sowas angehen sollte.
Gibt es dafür eine passende Komponente ? Timer ?


Wäre sehr dankbar
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Countdown erstellen

  Alt 13. Sep 2008, 15:47
Hi, am einfachsten geht das mit nem timer, wobei du z.B. eine Anzahl an Sekunden als Startparameter eingibst

FCountdown:=250;


und damm im timer die Zeit runterzählst und in einem Label darstellst:


Delphi-Quellcode:

TForm1.OnTimer1(Sender:TObject);
begin

FCountdown:=FCountdown-1;
label1.caption:='Noch '+inttostr(FCountdown)+' sekunden!';

if FCountdown:=0 then
  Timer1.enabled:=False;


end;
Das ganze kannst du dann noch verbesseren, indem du die Anzahl an Sekunden auch in Stunden und Minuten umrechnest

Grüße
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Countdown erstellen

  Alt 13. Sep 2008, 15:49
Zitat von alleinherrscher:
Hi, am einfachsten geht das mit nem timer, wobei du z.B. eine Anzahl an Sekunden als Startparameter eingibst

FCountdown:=250;


und damm im timer die Zeit runterzählst und in einem Label darstellst:


Delphi-Quellcode:

TForm1.OnTimer1(Sender:TObject);
begin

FCountdown:=FCountdown-1;
label1.caption:='Noch '+inttostr(FCountdown)+' sekunden!';

if FCountdown:=0 then
  Timer1.enabled:=False;


end;
Grüße
Da ist ein Fehler drin:

Delphi-Quellcode:
TForm1.OnTimer1(Sender:TObject);
begin

FCountdown:=FCountdown-1; //könnte man auch als dec(FCountdown) schreiben

label1.caption:='Noch '+inttostr(FCountdown)+' sekunden!';

if FCountdown = 0 then //<== Abfrage, keine Zuweisung
  Timer1.enabled:=False;


end;
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Countdown erstellen

  Alt 13. Sep 2008, 15:52
Sorry, hast recht...tippfehler!


Naja, die Minuten bzw Stunden könnstest du dann so umrechnen:


Delphi-Quellcode:

Std:=FCountdown mod 3600;
Min:=FCountdown mod 60 - Std*60;
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
XPLOSIV

Registriert seit: 31. Aug 2007
74 Beiträge
 
#5

Re: Countdown erstellen

  Alt 13. Sep 2008, 15:55
Sorry, das kapiere ich jetzt nicht, was ist FCountdown ?
[Fehler] Unit1.pas(31): Undefinierter Bezeichner: 'FCountdown'
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Countdown erstellen

  Alt 13. Sep 2008, 16:00
Du müsstest FCountdown erstmal deklarieren, in unserem Fall wäre das ein Integer, den du am besten oben in deiner Unit unter "Private" deklarierst. Dann musst du dieser Variablen noch einen Wert zuweisen, nämlich die Anzahl an Sekunden, die runtergewählt wernden soll. Dabei kannst du z.B. bei dem OnFormShow Ereigniss (Doppelklick im Objektinspektor unter Ereignisse auf OnShow) den festen Wert 250 sekunden zuweisen, oder halt eine andere Anzahl an Sekunden, die du haben willst...

Grüße


Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Label1: TLabel;
    procedure Timer1Timer(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
    FCountdown:integer;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
begin
 FCountdown:=250;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 FCountdown:=FCountdown-1;
 Label1.caption:=inttostr(FCountdown);
 if FCountdown=0 then timer1.enabled:=False;
end;

end.
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
XPLOSIV

Registriert seit: 31. Aug 2007
74 Beiträge
 
#7

Re: Countdown erstellen

  Alt 13. Sep 2008, 16:01
Ich hab mir mal selbst was einfallen lassen^^

Timer1.Interval:=Timer1.Interval-1; //könnte man auch als dec(FCountdown) schreiben

label1.caption:='Noch '+inttostr(Timer1.Interval)+' sekunden!';

if Timer1.Interval = 0 then //<== Abfrage, keine Zuweisung
Timer1.enabled:=False;

klappt eigentlich ganz gut^^
  Mit Zitat antworten Zitat
XPLOSIV

Registriert seit: 31. Aug 2007
74 Beiträge
 
#8

Re: Countdown erstellen

  Alt 13. Sep 2008, 16:05
Alles klar aber er zählt die Sekunden viel zu schnell runter, wie kann ich das ändern ?
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Countdown erstellen

  Alt 13. Sep 2008, 16:06
Zitat von XPLOSIV:
Ich hab mir mal selbst was einfallen lassen^^

Timer1.Interval:=Timer1.Interval-1; //könnte man auch als dec(FCountdown) schreiben

label1.caption:='Noch '+inttostr(Timer1.Interval)+' sekunden!';

if Timer1.Interval = 0 then //<== Abfrage, keine Zuweisung
Timer1.enabled:=False;

klappt eigentlich ganz gut^^
Das ist keine wirklich gute Idee. Den Timer kannst du dir als eine Art Objekt vorstellen, der in einem bestimmten Intervall einen angegebenen Sourcecode ausführt. Das Intervall, in welchem dieser Code ausgeführt wird, wird unter Timer1.intervall eingegeben. Du verkürzt also immer das Intervall zwischen zwei Timerereignissen...das macht keinen Sinn...
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
XPLOSIV

Registriert seit: 31. Aug 2007
74 Beiträge
 
#10

Re: Countdown erstellen

  Alt 13. Sep 2008, 16:33
Hat sich erledigt, Danke
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:15 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