Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Eigenen Timer mittels OnIdle!? (https://www.delphipraxis.net/112961-eigenen-timer-mittels-onidle.html)

.chicken 30. Apr 2008 08:43


Eigenen Timer mittels OnIdle!?
 
Also ich wollte mir eine eigene Timerkomponente schreiben. Dazu wollte ich OnIdle benutzen. Ich könnte im Konstruktor des Timers nun einfach
Delphi-Quellcode:
Application.OnIdle := MeinIdleEvent;
schreiben.
Wenn ich im Programm dann ein anderes IdleEvent benutzen will, geht das aber nicht. Hat wer eine Alternative zum OnIdle Event, bzw weiss wie ich ein eigenes für meine Klasse schreibe?

.ch!cken

SirThornberry 30. Apr 2008 08:54

Re: Eigenen Timer mittels OnIdle!?
 
geht nicht? Die Lösung: Fehler beseitigen :mrgreen:
Mal im ernst. Wenn wir nicht wissen was "geht nicht" bedeutet können wir dir nicht sagen was du falsch machst.

.chicken 30. Apr 2008 08:57

Re: Eigenen Timer mittels OnIdle!?
 
Sorry, hätte mich präziser ausdrücken sollen ^^
Also ich habe die Klasse TMeinTimer. Jetzt rufe ich im Konstrutktor der Klasse folgendes auf:
Delphi-Quellcode:
Application.OnIdle := MeinIdleEvent;
So, wenn jetzt der Benutzer aber in dem Programm, in dem er eine Instanz meines TMeinTimer erstellt, dem OnIdle eine neue Prozedur zuweist. Funktioniert der Timer nichtmehr.

Versteht ihr nun wo das Problem ist? :)

SirThornberry 30. Apr 2008 09:00

Re: Eigenen Timer mittels OnIdle!?
 
die Lösung:
Packe in deine Kompponente ein TApplicationEvents und weise dem OnIdle des TApplicationEvents deine Methode zu.

.chicken 30. Apr 2008 09:14

Re: Eigenen Timer mittels OnIdle!?
 
Ok, könnte es dann aber nicht Probleme geben wenn ich was in das OnIdle Event schreibe, wird das "normale" OnIdle Event, dass andere Benutzer vielleicht verwenden wollen, doch nichtmehr aufgerufen oder? Denn die Anwendung wird ja dann nichtmehr "Idle"?!

Angel4585 30. Apr 2008 09:21

Re: Eigenen Timer mittels OnIdle!?
 
Warum muss es unbedingt das OnIdle Event sein?
Was wenn man zwei deiner Timerkomponenten einbinden will?
Ich würde einen Timer über einen neuen Thread lösen.

.chicken 30. Apr 2008 09:31

Re: Eigenen Timer mittels OnIdle!?
 
Och Gott, Threads...die verwirren mich immer nur :D
Gibts nich noch ne andere Möglichkeit ^^

Also mit dem IdleEvent habe ich gerade schnell nen Timer geschrieben. Aber das Problem dass sie sich gegenseitig behindern ist natürlich schon blöd.

SirThornberry 30. Apr 2008 09:42

Re: Eigenen Timer mittels OnIdle!?
 
die behindern sich nicht wirklich selbst. Denn wenn das OnIDLE von TApplication ausgelöst wird, werden auch alle OnIDLEs von den TApplicationEvents aufgerufen.

.chicken 30. Apr 2008 10:11

Re: Eigenen Timer mittels OnIdle!?
 
Ja, werden die dann alle nacheinander abgearbeitet und erst danach wird wieder ein OnIdle Event ausgelöst? Dann ist das doch kein Problem und kann so laufen oder?

:)

Edit: Funktioniert alles, danke an alle :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:26 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