[Lazarus] Windows.PostMessage vs Application.QueueAsyncCall

Michael Schnell mschnell at lumino.de
Wed Mar 19 11:07:11 CET 2014


On 03/19/2014 12:53 AM, Hans-Peter Diettrich wrote:
>
> This queue may be unusable for LCL messages (dunno).
It _is_ used for the said purpose, simply because the TThread class is 
provided by the fpc RTL (not the LCL) and here it can't do other but 
feed the Queue in the RTL. And this obviously works just fine (at least 
with Windows and Linux "GTK2", I did not decently other GUI enabled 
Widget Types).

>>  - Queue in the Linux GUI based LCL that is fed by events (such as 
>> Key or Mouse) generated by the WidgetSet it _attaches_ to  (this 
>> defines is the "attach" word that I mentioned)
>>  - Queue in the Windows OS the LCL in a Windows based Widget type 
>> attaches to (instead of implementing it's own event queue)
> IMO these queues are equivalent, only the implementor (Windows/LCL) is 
> different.

Regarding the "normal" GUI events you are right.
But in Windows this queue can be used for other stuff, too, such as 
sending messages directly to Windows control elements and doing 
inter-Process (instead internal thread-to-Mainthread) signaling.

-Michael




More information about the Lazarus mailing list