Delphi-PRAXiS
Seite 6 von 7   « Erste     456 7      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Timer offline laufen (https://www.delphipraxis.net/162305-timer-offline-laufen.html)

himitsu 18. Aug 2011 09:25

AW: Timer offline laufen
 
Zum Glück lesen noch andere lernwillige Benutzer mit und gerade die werden hier viel lernen, weil hier Vieles, zu Abwechslung, mal so richtig schön durchgekaut wird.

DeddyH 18. Aug 2011 09:27

AW: Timer offline laufen
 
Genau, es geht nämlich auch anders, siehe z.B. hier: http://www.delphipraxis.net/162322-records-array.html

chiller4fun1990 20. Aug 2011 07:58

AW: Timer offline laufen
 
*push*

kann mir den keiner sagen wieso der Timer nach ablauf der Zeit wieder neustartet?
lg

haentschman 20. Aug 2011 08:19

AW: Timer offline laufen
 
Hallo...
Zitat:

kann mir den keiner sagen wieso der Timer nach ablauf der Zeit wieder neustartet?
...doch, der Debugger und zwar hier:
Delphi-Quellcode:
if now >= Zielzeit then
oder
Delphi-Quellcode:
if ini.ReadDateTime('Daten','Zielzeit',Zielzeit) < now then
oder
Delphi-Quellcode:
Timer1.Enabled := Zielzeit > now;
... welche C&P Lösung im Einsatz ist. 8-)

chiller4fun1990 20. Aug 2011 08:24

AW: Timer offline laufen
 
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); // FormCreate ist die Lösung
  private
    { Private declarations }
    Zielzeit: TTime;
    function GetIniFilename: string;
    function ReadZeitwert: TDateTime;
    procedure WriteZeitwert(Zeit: TDateTime);
  public
    { Public declarations }
    property IniFilename: string read GetIniFilename;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

const
  SECTION = 'Daten';
  IDENT = 'Zielzeit';

function TForm1.GetIniFilename: string;
begin
  Result := ExtractFilePath(ParamStr(0)) + 'zeit.ini';
end;

function TForm1.ReadZeitwert: TDateTime;
var
  ini: TIniFile;
begin
  ini := TIniFile.Create(IniFilename);
  try
    Result := ini.ReadDateTime(SECTION, IDENT, 0);
  finally
    ini.Free;
  end;
end;

procedure TForm1.WriteZeitwert(Zeit: TDateTime);
var
  ini: TIniFile;
begin
  ini := TIniFile.Create(IniFilename);
  try
    ini.WriteDateTime(SECTION, IDENT, Zeit);
  finally
    ini.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Zielzeit := now + 1;
  WriteZeitwert(Zielzeit);
  Timer1.Enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Label1.Caption:= TimeToStr(zielzeit - now);
  if now >= Zielzeit then
  begin
    Timer1.enabled:=false;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject); // FormCreate verwenden
begin
  Zielzeit := ReadZeitwert;
  Timer1.Enabled := Zielzeit > now;
end;

end.
Wo bitteschön sollte hier der Fehler sein?

haentschman 20. Aug 2011 08:31

AW: Timer offline laufen
 
Ich kaue jetzt nicht nochmal die 6 Seiten durch. Es ist alles gesagt. :roll:

Setze Breakpoints und schaue dir die Werte an. (Zielzeit, Now) Dann überlege ! Es kann ja wohl nicht wahr sein, daß du seit Tagen die paar Quelltextzeilen nicht geregelt bekommst. Hilfe hattest du genug... :roll:

chiller4fun1990 20. Aug 2011 08:43

AW: Timer offline laufen
 
Habs jetzt hinbekommen mit:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Zielzeit := (now + (1 / 60 / 60 / 24) * 86400);
  WriteZeitwert(Zielzeit);
  Timer1.Enabled:=true;
end;

DeddyH 20. Aug 2011 12:18

AW: Timer offline laufen
 
Rechne mal mit dem Taschenrechner
Code:
(1 / 60 / 60 / 24) * 86400
nach. *Koppschüttel*

haentschman 20. Aug 2011 12:24

AW: Timer offline laufen
 
:cheer:

chiller4fun1990 20. Aug 2011 13:28

AW: Timer offline laufen
 
ja ich weis das da eins rauskommt allerdings klappt es so.
und wenn ich 1 genommen hätte, hat der Timer nach ablauf der Zeit von vorn begonnen.
lg


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 Uhr.
Seite 6 von 7   « Erste     456 7      

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-2025 by Thomas Breitkreuz