On Apr 19, 2011, at 6:04 PM, Mattias Gaertner wrote:

>  
>  
> 
> dhkblas...@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@lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to