Einzelnen Beitrag anzeigen

chiller4fun1990

Registriert seit: 26. Dez 2009
23 Beiträge
 
#14

AW: Timer offline laufen

  Alt 17. Aug 2011, 16:42
Hallo,
Merke gerade wenn ich den Countdown starte, Programm beende und neustarte das nichts Passiert.

Wenn ich folgenden Code benutze wird die Restzeit nach einen Neustart des Programms zwar richtig angezeigt und runtergezählt, allerdings rennt der timer auch wieder.
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormActivate(Sender: TObject);
      private
    Zielzeit: TDateTime;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  ini: TIniFile;
  filename: String;
begin
  filename := ExtractFilePath(ParamStr(0)) + 'zeit.ini';
  ini := TIniFile.Create(filename);


  Zielzeit := now + 1;
  

  try

    ini.WriteDateTime('Daten','Zielzeit',Zielzeit);
         finally
      ini.Free;
  end;



  Timer1.Enabled:=true;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  ini: TIniFile;
  filename: String;
begin
  filename := ExtractFilePath(ParamStr(0)) + 'zeit.ini';
  ini := TIniFile.Create(filename);

  Label1.Caption:= TimeToStr(zielzeit - now);


  
  if now >= Zielzeit then

  begin
  Timer1.enabled:=false;
     end;


end;


procedure TForm1.FormActivate(Sender: TObject);
var
  ini: TIniFile;
  filename: String;
begin
  filename := ExtractFilePath(ParamStr(0)) + 'zeit.ini';
  ini := TIniFile.Create(filename);

Zielzeit:=StrtoDateTime(ini.ReadString('Daten','Zielzeit',''));
timer1.Enabled:=true;
  end;
Was mach ich falsch damit der Countdown immer wieder von neu anfängt?


Nachtrag://

Wenn ich aus
Label1.Caption:= TimeToStr(zielzeit - now); das hier mach:
Label1.Caption:= DateTimeToStr(zielzeit - now); und das Programm starte, ist irgendwie das Datum verkehrt.
Hier mal ein Screen davon:

http://www.pic-upload.de/view-11082279/timer.jpg.html

Geändert von chiller4fun1990 (17. Aug 2011 um 16:50 Uhr)
  Mit Zitat antworten Zitat