Einzelnen Beitrag anzeigen

Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.355 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: Timer offline laufen

  Alt 17. Aug 2011, 17:12
Natürlich steht im Label jedesmal was anderes. Du trägst dort doch die Restzeit bis zur Zielzeit ein.

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 FormCreate(Sender: TObject);
  private
    { Private declarations }
    Zielzeit: TDateTime;
  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);
begin
// Eine von den folgenden 3 Varianten lässt du stehen. Die anderen 2 löscht du einfach
  Label1.Caption:= TimeToStr(zielzeit - now); // So wird die Restzeit dargestellt
  Label1.Caption:= TimeToStr(zielzeit); // So wird die Zielzeit dargestellt. Das macht aber im Timer-Ereigns keinen Sinn
  Label1.Caption:= TimeToStr(now); // So wird die aktuelle Zeit dargestellt

  if now >= Zielzeit then
  begin
    Timer1.enabled:=false;
  end;
end;


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

  Zielzeit:=StrtoDateTime(ini.ReadString('Daten','Zielzeit',''));
  ini.Free;

  timer1.Enabled:=true;
end;

end;
Ich habe da ein bisschen rumgebastelt. 2 Speicherlecks sind erstmal entfernt.
Das ist allerdings ungeprüfter Source. Wenns nicht funktioniert, muss du vielleicht mal selbst denken.

Erklären muss ich wohl nichts, da du sowieso nur C&P machst.
Peter

Geändert von Jasocul (17. Aug 2011 um 17:19 Uhr)
  Mit Zitat antworten Zitat