![]() |
Countdown erstellen
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. :oops: Gibt es dafür eine passende Komponente ? Timer ? Wäre sehr dankbar :) |
Re: Countdown erstellen
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:
Das ganze kannst du dann noch verbesseren, indem du die Anzahl an Sekunden auch in Stunden und Minuten umrechnestTForm1.OnTimer1(Sender:TObject); begin FCountdown:=FCountdown-1; label1.caption:='Noch '+inttostr(FCountdown)+' sekunden!'; if FCountdown:=0 then Timer1.enabled:=False; end; Grüße |
Re: Countdown erstellen
Zitat:
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; |
Re: Countdown erstellen
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; |
Re: Countdown erstellen
Sorry, das kapiere ich jetzt nicht, was ist FCountdown ?
[Fehler] Unit1.pas(31): Undefinierter Bezeichner: 'FCountdown' |
Re: Countdown erstellen
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. |
Re: Countdown erstellen
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^^ |
Re: Countdown erstellen
Alles klar aber er zählt die Sekunden viel zu schnell runter, wie kann ich das ändern ?
|
Re: Countdown erstellen
Zitat:
|
Re: Countdown erstellen
Hat sich erledigt, Danke :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz