// Einfacher Countdown. Beim Klick auf den Button wird sekundenweise die Zeit
// heruntergezählt. Beim zweiten Klick wird das Ganze gestoppt und zurückgesetzt.

// Getestet mit D4 unter WinME

type 
  TForm1 = class(TForm) 
    Button1: TButton; 
    Label1: TLabel; 
    procedure Button1Click(Sender: TObject); 
    procedure FormCreate(Sender: TObject); 
  private 
{ Private-Deklarationen } 
  public 
    procedure null; 
  end; 
 
  TMein = class(TThread) 
    procedure Execute; override; 
    procedure doit; 
  end; 
 
var 
  Form1: TForm1; 
 
implementation 
 
{$R *.DFM} 
 
var 
  t: TTime; 
 
const 
  lauf: boolean = false; 
  n = '00:00:00'; 
 
procedure TMein.Execute; 
begin 
  repeat 
    if lauf then synchronize(doit); 
  until false; 
end; 
 
procedure TMein.doit; 
var rest: string; 
begin 
  with Form1 do begin 
    rest := formatdatetime('hh:nn:ss', t - frac(time)); 
    if rest <> label1.caption then 
      label1.caption := rest; 
    if rest = n then begin 
      lauf := false; 
      showmessage('Zeit ist abgelaufen'); 
    end; 
  end; 
end; 
 
procedure TForm1.null; 
begin 
  label1.caption := n; 
end; 
 
procedure TForm1.FormCreate(Sender: TObject); 
begin 
  null; 
  button1.caption := '&Start/Stop'; 
  TMein.create(false); 
end; 
 
// Countdown für eine Stunde, fünfundzwanzig Minuten und dreißig Sekunden 
procedure TForm1.Button1Click(Sender: TObject); 
var s: string; 
begin 
  if not lauf then begin 
    s := '01:25:30'; 
    lauf := true; 
    label1.caption := s; 
    t := strtotime(s) + time + 0.00001; 
  end else begin 
    lauf := false; 
    null; 
  end; 
end;



Zugriffe seit 6.9.2001 auf Delphi-Ecke