AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Timer offline laufen

Ein Thema von chiller4fun1990 · begonnen am 16. Aug 2011 · letzter Beitrag vom 20. Aug 2011
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.631 Beiträge
 
Delphi 12 Athens
 
#1

AW: Timer offline laufen

  Alt 17. Aug 2011, 00:27
Zielzeit := now + 1; setzt die Zielzeit auf einen Tag nach jetzt. Ist das wirklich, was du willst? Wenn ja, musst du ca. 24 Stunden warten, bis die Zielzeit erreicht ist.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
chiller4fun1990

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

AW: Timer offline laufen

  Alt 17. Aug 2011, 00:29
@Uwe

Ja das ist schon richtig mit 24Stunden.

Zum testen kann ich ja in der Ini das Gespeicherte Datum ändern.

Allerdings hört der Countdown nicht auf zum rennen.
lg
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Timer offline laufen

  Alt 17. Aug 2011, 01:29
In FormActivate ist ein Speicherleck, das solltest du auf jeden Fall mal schließen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.348 Beiträge
 
Delphi 12 Athens
 
#4

AW: Timer offline laufen

  Alt 17. Aug 2011, 05:56
Ach egal .... im Button1Click ist das Try-Finally auch nicht grade "optimal" platziert.

Ich bin mir Sicher der Countdown fängt nur einmal von vorne an ... Man nehme einfach mal DateTimeToStr, um das zu prüfen.
Und ja FormActivate wird wirklich erneut gefeuert, da ja zwischenzeitlich eine Messagebox angezeigt und somit die Form den Fokus verlor, womit dann die neue zielzeit geladen wird und es 2*24 Stunden dauert, da der Button die Zeit ja schon geändert hatte.
Außerdem sollte man den Timer besser noch vor der MessageBox deaktivieren.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.658 Beiträge
 
Delphi 12 Athens
 
#5

AW: Timer offline laufen

  Alt 17. Aug 2011, 08:19
[OT] Werden Forenregeln eigentlich nicht mehr gelesen bzw. EULA-technisch einfach nur abgenickt? 2 * nacheinander pushen, Crossposts nicht verlinken usw. wird allgemein nicht gern gesehen. [/OT]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Timer offline laufen

  Alt 17. Aug 2011, 11:57
@chiller4fun1990: Pushen ist erst nach 24 Stunden erlaubt. Innerhalb dieser Zeit gibt es die Edit-Funktion. Wie DeddyH bereits geschrieben hat, hast du diesen Nutzungsbedingungen auch bei der Anmeldung zugestimmt.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
chiller4fun1990

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

AW: Timer offline laufen

  Alt 17. Aug 2011, 15: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 15:50 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:09 Uhr.
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