[fpc-pascal] Message methods
Darius Blaszyk
dhkblaszyk at zeelandnet.nl
Tue Apr 19 18:17:05 CEST 2011
On Apr 19, 2011, at 6:04 PM, Mattias Gaertner wrote:
>
>
>
> dhkblaszyk at zeelandnet.nl hat am 19. April 2011 um 17:48 geschrieben:
>
>> Hi,
>>
>> I'm trying to understand how message methods work in FPC. For this I created a simple app that shows a message. I also created a second (identical form) and I expected that all message methods related to MY_MESSAGE would be executed when I pressed either one or the other button. This did not happen however even when dispatching through the Application object. Can someone explain me please?
>>
>> Regards, Darius
>
>
> Make sure TMsg starts with
>
> TMsg = record
> MsgID: DWord;
> ...
I used a cardinal instead, so no issues there, although I expected to get two messages as I have two forms open (code for both identical to the code shown below). Instead when I dispatch the message only the class which dispatches the message receives it. The other class never does. So how is the message handler traversing the classes within the process? I must be missing something obvious.
Darius
>>
>>
>> TForm1 = class(TForm)
>> Button1: TButton;
>> Button2: TButton;
>> procedure Button1Click(Sender: TObject);
>> procedure Button2Click(Sender: TObject);
>> procedure MessageReceiver(var msg: TMsg); message MY_MESSAGE;
>> private
>> { private declarations }
>> public
>> { public declarations }
>> end;
>>
>> var Form1: TForm1;
>>
>> implementation
>>
>> {$R *.lfm}
>>
>> { TForm1 }
>>
>> procedure TForm1.Button1Click(Sender: TObject);
>> begin
>> msg.MSGID := MY_MESSAGE;
>> msg.Data := 'Hello World!';
>> Dispatch(msg);
>> end;
>>
>> procedure TForm1.Button2Click(Sender: TObject);
>> begin
>> Form2.Show;
>> end;
>>
>> procedure TForm1.MessageReceiver(var msg: TMsg);
>> begin
>> ShowMessage(msg.Data);
>> end;
>>
>
>
> Mattias
>
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20110419/6a3816f1/attachment.html>
More information about the fpc-pascal
mailing list