Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ttimer Intervall bewirkt nichts (https://www.delphipraxis.net/200831-ttimer-intervall-bewirkt-nichts.html)

DrUArn 29. Mai 2019 20:43

ttimer Intervall bewirkt nichts
 
Hi Comm,

Die Veränderung der Eigenschaft ttimer.intervall bewirkt bei mir gar nichts.

Die ontimer-Routine taktet im Sekundenrhythmus, egal was in intervall steht (gesetzt direkt in der IDE)

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);

begin
label1.caption:='aktuelle Zeit: '+timetostr(gettime);
end;
Woran kann das liegen.

Grüße Uwe

DieDolly 29. Mai 2019 20:44

AW: ttimer Intervall bewirkt nichts
 
Setz das Intervall zu Testzwecken im Code zur Laufzeit.

DrUArn 29. Mai 2019 20:49

AW: ttimer Intervall bewirkt nichts
 
Hi,

ja, zur Laufzeit bewirkt diese Änderung das, was sie soll!

Heißt, die Voreinstellung lässt sich in der IDE nicht beeinflussen?


Uwe

DieDolly 29. Mai 2019 21:11

AW: ttimer Intervall bewirkt nichts
 
Eigentlich sollte sie das ohne Probleme. Vielleicht ist das in deiner Version kaputt.

Bernhard Geyer 29. Mai 2019 21:25

AW: ttimer Intervall bewirkt nichts
 
AFAIK musst du den Timer erste stoppen, Intervall ändern und dann neu starten.

Dennis07 29. Mai 2019 21:47

AW: ttimer Intervall bewirkt nichts
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1433431)
AFAIK musst du den Timer erste stoppen, Intervall ändern und dann neu starten.

Du kannst den Timer zur Entwurfszeit weder stoppen noch starten.
Und zur Laufzeit scheint alles so zu gehen.

Ich würde mal versuchen das Projekt neu zu erzeugen. Es scheint, als dass deine Formularressource wohl nicht neu eingebunden wird.

DieDolly 29. Mai 2019 22:18

AW: ttimer Intervall bewirkt nichts
 
So wie ich das verstanden habe, ist das Problem kein Laufzeitproblem sondern ein Entwurfszeitproblem.

DrUArn 29. Mai 2019 22:26

AW: ttimer Intervall bewirkt nichts
 
Ja, es ist "nur" ein Problem zur Entwurfszeit.

Grüße Uwe

Rollo62 30. Mai 2019 07:17

AW: ttimer Intervall bewirkt nichts
 
Zitat:

Zitat von Dennis07 (Beitrag 1433432)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1433431)
AFAIK musst du den Timer erste stoppen, Intervall ändern und dann neu starten.

Du kannst den Timer zur Entwurfszeit weder stoppen noch starten.
Und zur Laufzeit scheint alles so zu gehen.

Ich würde mal versuchen das Projekt neu zu erzeugen. Es scheint, als dass deine Formularressource wohl nicht neu eingebunden wird.

Stoppen und neustarten geht so
Delphi-Quellcode:
    Timer1.Enabled := False;
    Timer1.Enabled := True;

DeddyH 30. Mai 2019 07:51

AW: ttimer Intervall bewirkt nichts
 
Im OI?

Uwe Raabe 30. Mai 2019 08:32

AW: ttimer Intervall bewirkt nichts
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1433431)
AFAIK musst du den Timer erste stoppen, Intervall ändern und dann neu starten.

Das ist nicht nötig. SetInterval ruft bei einer Änderung des Werts ein UpdateTimer auf. Das tut SetEnabled übrigens auch. UpdateTimer löscht als erstes den aktuellen Windows-Timer und legt ihn dann bei Bedarf wieder an.

Bernhard Geyer 30. Mai 2019 09:24

AW: ttimer Intervall bewirkt nichts
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1433447)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1433431)
AFAIK musst du den Timer erste stoppen, Intervall ändern und dann neu starten.

Das ist nicht nötig. SetInterval ruft bei einer Änderung des Werts ein UpdateTimer auf. Das tut SetEnabled übrigens auch. UpdateTimer löscht als erstes den aktuellen Windows-Timer und legt ihn dann bei Bedarf wieder an.

Wenn das Implementiert ist, dann ist es ja gut.


Aber ich wunder mich das immer wieder von Entwurfszeit gesprochen wird.
Während der Entwicklung laufen die Timer doch eh nicht.

Uwe Raabe 30. Mai 2019 09:27

AW: ttimer Intervall bewirkt nichts
 
Zitat:

Zitat von DrUArn (Beitrag 1433427)
Woran kann das liegen.

Delphi-Quellcode:
TimerToStr
löst halt nur sekundengenau auf.

Bernhard Geyer 30. Mai 2019 09:47

AW: ttimer Intervall bewirkt nichts
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1433451)
Zitat:

Zitat von DrUArn (Beitrag 1433427)
Woran kann das liegen.

Delphi-Quellcode:
TimerToStr
löst halt nur sekundengenau auf.

Autsch. Das wird es sein.
TimeToStr hätte auch einen weiteren Parameter.
ich würde aber FormatDatetime nehmen und die ms ins Format bringen.

DieDolly 30. Mai 2019 20:46

AW: ttimer Intervall bewirkt nichts
 
Zitat:

Zitat von DrUArn (Beitrag 1433435)
Ja, es ist "nur" ein Problem zur Entwurfszeit.

Grüße Uwe

Er hat das Problem nur in der IDE, nicht im Programm selber. Zu diskutieren wie man einen Timer neustartet bringt ihm nichts.

DrUArn 3. Jun 2019 19:11

AW: ttimer Intervall bewirkt nichts
 
hi,
@ Bernhardt Geyer:

timetostr gibt nur Sekundengenau aus. Ja - aber wenn ich ttimer.intervall auf z. B. 6000 stelle, kommt das Ereignis eben alle 6 Sekunden. Das geht zur aufzeit, aber die Einstellung während der Entwicklungsumgebung bewirkt nichts:

Grüße Uwe

Uwe Raabe 3. Jun 2019 21:11

AW: ttimer Intervall bewirkt nichts
 
16 Posts und keine Lösung! Vielleicht hilft ein konkretes Beispielprojekt, das den Fehler zeigt?

Luckie 4. Jun 2019 01:09

AW: ttimer Intervall bewirkt nichts
 
Nur um das mal klar zu stellen. Der Timer steht im Entwicklermodus auf 1000ms. Dann startest du und er feuert auch jede Sekunden. Dann beendest du das Programm, änderst den Intervall auf 6000ms, startest wieder und der Timer feuert trotzdem noch jede 1000ms? Kann ich mir eigentlich nicht vorstellen.

Du hast nicht zufällig mehrere Timer auf der Form und du verwechselst die Timer?

DrUArn 11. Jun 2019 18:15

AW: ttimer Intervall bewirkt nichts
 
Hi,

Asche auf mein Haupt.

@Lucky: Richtig, das kann man sich nicht vorstellen

weil: ich einen älteren Quelltext benutzt habe und dort unter procedure TForm1.FormCreate(Sender: TObject)
das timer.intervall=1000 stelle (wollte eben eine Sekundenuhr haben)! - hatte ich "übersehen".
Ohne diese Zeile geht natürlich alles wie es soll.
Danke für's mitdenken!
Das konnte keiner rauskriegen.

Grüße Uwe


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz