Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Timer reseten? (https://www.delphipraxis.net/156656-timer-reseten.html)

Hobby-Programmierer 10. Dez 2010 00:32

AW: Timer reseten?
 
So mache ich das auch wenn ich das brauche, wäre aber auch schön wenn
Delphi-Quellcode:
Timer1.enabled := TRUE
einen Timer reseten würde.

Luckie 10. Dez 2010 00:42

AW: Timer reseten?
 
Zitat:

Zitat von gmc616 (Beitrag 1067585)
Jedes Timer-Event startet eine Art Thread.

Nein, es wird nicht eine Art Thread gestartet, was ach immer das für ein Thread sein soll. Es werden Windowsnachrichten an das zugehörige Fenster geschickt und der Code im Timer Ereignis läuft im Kontex des Hauptthreads.

gmc616 10. Dez 2010 00:59

AW: Timer reseten?
 
Zitat:

Zitat von Hobby-Programmierer (Beitrag 1067588)
So mache ich das auch wenn ich das brauche, wäre aber auch schön wenn
Delphi-Quellcode:
Timer1.enabled := TRUE
einen Timer reseten würde.

Tut er doch! Der Timer wird zurück gesetzt, nicht mehr und nicht weniger.

Zitat:

Zitat von Luckie (Beitrag 1067589)
Nein, es wird nicht eine Art Thread gestartet, was ach immer das für ein Thread sein soll. Es werden Windowsnachrichten an das zugehörige Fenster geschickt und der Code im Timer Ereignis läuft im Kontex des Hauptthreads.

Ja. Stimmt. Deswegen eine "Art" Thread. Mir ist zur aktuellen Stunde nix besseres eingefallen.
Demonstrieren läßt es sich das Ganze einfach mit einem
Delphi-Quellcode:
ShowMessage('Timer');
im TimerEvent. Das zeigt doch voraus ich hinauf will.

Luckie 10. Dez 2010 01:07

AW: Timer reseten?
 
Das ist noch nicht mal eine Art Thread. Ein Thread ist was ganz anderes.

gmc616 10. Dez 2010 01:14

AW: Timer reseten?
 
Hast ja recht. Dann erklär du es bitte besser! :freak:

Luckie 10. Dez 2010 01:19

AW: Timer reseten?
 
Habe ich oben schon. Details kann man im MSDN finden.

Bummi 10. Dez 2010 06:41

AW: Timer reseten?
 
Das "Problem" liegt im Setter
Delphi-Quellcode:
procedure TTimer.SetEnabled(Value: Boolean);
begin
  if Value <> FEnabled then
  begin
    FEnabled := Value;
    UpdateTimer;
  end;
end;

wenn der Zustand bereits gesetzt ist passiert gar nichts mehr.

DeddyH 10. Dez 2010 08:24

AW: Timer reseten?
 
Das kann man aber doch vermutlich einfach umgehen:
Delphi-Quellcode:
procedure ToggleTimer(Timer: TTimer;value: Boolean);
begin
  if Assigned(Timer) then
    begin
      (* hier sollte der Setter auf jeden Fall durchlaufen werden *)
      Timer.Enabled := not Timer.Enabled;
      Timer.Enabled := Value;
    end;
end;

Sir Rufo 10. Dez 2010 09:11

AW: Timer reseten?
 
Ich hätte schwören können, das Verhalten ist so wie (bei mir) beschrieben :oops:

Wie man sich doch täuschen kann ... (habe extra nochmal die VM mit Delphi 7 aktiviert und da same procedure)
(Sind das die ersten Anzeichen von Altersstarrsinn? :mrgreen:)


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:13 Uhr.
Seite 2 von 2     12   

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