Thema: TTimer in DLL

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

TTimer in DLL

  Alt 9. Nov 2023, 16:57
n'Abend,

so richtig befriedigen mich gefundene Antworten nicht.

https://stackoverflow.com/questions/...er-not-working
http://www.delphigroups.info/2/be/406364.html
https://www.delphipraxis.net/69322-t...e-comctrl.html
und Vieles mehr, auch in anderen Sprachen
Bei Google suchenTTimer DLL

Bei einem TTimer innerhalb einer DLL wird das OnTimer nicht ausgelöst, warum?

* Ja, TTimer nutzt ein eigenes Form (AllocHWnd) und darin einen Timer mit ID 1.
* SetTimer kann man mit einem Callback nutzen, und man kann sich eine freie ID geben lassen, aber im Callcack fehlt mir dann die Beziehung zu meinen Daten/Objekt.
* * also müsste ich auch noch eine Liste mit IDs führen, zusammen mit dem eigentlich gemeinten

ABER, mein Timer, bzw. das interne CreateWindow, wird im Hauptthread der EXE ausgegührt, also sollte somit eigentlich in dessen Thread laufen und demnach auch von dessen MessageLoop verarbeitet werden.

Da die "virtuellen" WM_TIMER (die nicht wirklich in die Message-Queue geschrieben werden) innerhalb des GetMessage/PeekMessage generiert und sofort verarbeitet werden, ist der VCL-Code drumrum eigentlich egal.



Ja ja, vermutlich muß ich meinen Code eh auf Threads umbauen, weil es bei Verwendung dieser API eventuell zu Deadlocks kommen könnte, in seltenen Fällen,
aber zum Debuggen und um erstmal zu schauen, ob ich den anderen Rest zum Laufen bringen kann (und nicht eh alles umsonst wäre) ..................
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 9. Nov 2023 um 17:40 Uhr)
  Mit Zitat antworten Zitat