[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