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