Hier eine ganz einfache Lösung. In diesem Beispiel wird davon ausgegangen das im Edit-Feld Sekunden angegeben wurden.
Delphi-Quellcode:
var
Counter : Integer;
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Clear;
Timer1.Enabled := False;
Timer1.Interval := 1000;
// = 1 Sekunde
end;
procedure TForm1.Edit1KeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
Timer1.Enabled := False;
// Wenn eine Taste gedrückt den Timer anhalten
end;
procedure TForm1.Edit1KeyPress(Sender: TObject;
var Key: Char);
begin
if not (Key
in ['
0'..'
9',#8,#13])
then // Nur Zahlen, Del und Enter zulassen
begin
Key := #0;
end;
if (Key = #13)
then // Wenn Enter gedrückt wurde
begin
Counter := StrToInt (Edit1.Text);
// Countdown aus dem Edit nehmen
Timer1.Enabled := True;
// Timer wieder starten
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
DEC (Counter);
// Die Counter runterzählen
if (Counter = 0)
then // Zeit ist abgelaufen
begin
Edit1.Clear;
Timer1.Enabled := False;
ShowMessage ('
blubb');
end
else
begin
Edit1.Text := IntToStr (Counter);
// Den aktuellen Countdown ins Edit
end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"