Timer im Thread erzeugen
-
Hallo,
Ich möchte mit dem BCB mehrere Threads erzeugen, die jeweils einen eigenen Timer haben. Kann mir jemand einen Tipp geben wie ich das mache? Wenn ich die Timer als Objekte auf die Form ziehe werden sie vom BCB automatisch erzeugt und laufen im Kontext des Hauptthreads. Wenn ich die Timer aber im Thread selber erzeuge über:
TTimer *Timer1 = new TTimer;
...weiss ich nicht wie ich die Timer-Funktion festlegen kann. Kann mir jemand helfen, am besten mit etwas Beispiel-Code?
Danke & Liebe grüße,
Seddto
-
In der FAQ stand glaub ich was über das dynamische Erzeugen von komponenten.... *grübel*
-junix
-
Habe jetzt nochmal etwas rumprobiert und jetzt noch ein Problem mit dem Timer. Ich habe den Time rjetzt im Thread dynamisch erzeugt und eine Timer-Funktion...
void __fastcall Play1Timer(TObject *Sender)... geschrieben. Das problem ist, bei der Zuweisung "Timer1->OnTimer = Play1Timer" erwartet der BCB den Parameter für (Tobject *Sender). Was muss ich denn da angeben?
Danke & LG
Seddto
-
Bei mir klappts.
Wie weiste den das OnTimer zu?
mit
Timer1->OnTimer = Play1Timer();oder
Timer1->OnTimer = Play1Timer;[edit]wenn du das so machst wie im faq dann erübrigt sich eigentlich die frage[/edit]
-
ich habe zuerst so zugewiesen:
TimerNeu->OnTimer = TimerFunktion
Dann kann schon die Fehlermeldung das Argumente erwartet werden.
Dann hab ichs so versucht
TimerNeu->OnTimer = TimerFunktion();
ebenfalls die Fehlermeldung.
Wo steht denn in den FAQ was dazu? Ich habe gesucht aber nichts gefunden

-
Abschnitt Komponenten, dynamisch erstellen...
-junix
-
hmmm... im vcl faq-index steht nichts mit komponenten dynamisch erstellen...
aber ich habe was gefunden das heißt : zur Laufzeit erstellen, anzeigen und Events zuweisen
meinste vielleicht das?
-
Hab das problem inzwischen gelöst. Ich hab die Timer-Funktion in der Klasse TForm definiert also so:
void __fastcall TForm1::Play1Timer(TObject *Sender)vorher war die Funktion in keiner Klasse definiert, sondern einfach als globale Funktion. Jetzt gehts aufjedenfall

Danke & Lg
Seddto
-
Vielleicht noch 'ne kleine Nachbemerkung: Nachdem bei mir die Timer-Komponente in einem Thread "merkwürdige" Effekte lieferte, habe ich sie durch API-Funktionen ersetzt, was gerade bei einem Timer ausgesprochen einfach und mit wenigen Zeilen zu erledigen ist. Die Frage lautet also: Muß es unbedingt und um jeden Preis eine Komponente sein, oder sind in bestimmten Fällen nicht direkte API-Aufrufe sinnvoller?
Rob'