Registriert seit: 22. Feb 2017
955 Beiträge
|
Komponente mit PostMessage TService-tauglich machen
10. Apr 2024, 19:05
Hi,
ich habe eine (Fremd)-Komponente, die, basieren auf TComponent sich ein WindowHandle holt und verschiendene Event über PostMessage feuert.
Diese Komponente möchte ich jetzt in einem Service bzw. in einem Thread einsetzen. Als Thread kann er sich aber kein WindowHandle holen (wenn's nicht stimmt bitte korrigiert mich).
Nun dachte ich mir, stell ich das einfach um auf PostThreadMessage. Statt eines WindowHandle hole ich mir einfach die ThreadID und brauch lediglich aus PostMessage->PostThreadMessage machen.
Was mir natürlich fehlt ist die WndProc, die ja, wenn ich das ganze richtig verstanden habe, im Thread nicht geht.
Also muss die Message über GetMessage oder PeekMessage in einer Schleife abgeholt werden. Dazu muss ich das der Execute-Methode unterbringen, richtig? Oder gibt es eine Möglichkeit sich innerhalb der Komponente in irgendeine MessageQueue einzuklinken?
Ich muss dazu sagen, dass ich mit PostThreadMessage und so noch nie was gemacht habe. Immer nur mit WindowMessages. Vielleicht könnte ihr mich ein wenig erhellen.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
Geändert von Hobbycoder (11. Apr 2024 um 11:48 Uhr)
|