<div dir="auto"><div><div class="gmail_extra"><div class="gmail_quote">Am 06.01.2018 17:25 schrieb "Ewald" <<a href="mailto:ewald@yellowcouch.org">ewald@yellowcouch.org</a>>:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
When reading <a href="https://www.freepascal.org/docs-html/ref/refsu31.html#x82-1040006.5.7" rel="noreferrer" target="_blank">https://www.freepascal.org/<wbr>docs-html/ref/refsu31.html#<wbr>x82-1040006.5.7</a> I stumbled on the following text at the bottom of the page:<br>
<br>
"In addition to this mechanism, a string message method accepts a self parameter:<br>
Procedure StrMsgHandler(Data: Pointer;<br>
                        Self: TMyObject); Message ’OnClick’;<br>
<br>
When encountering such a method, the compiler will generate code that loads the Self parameter into the object instance pointer. The result of this is that it is possible to pass Self as a parameter to such a method.<br>
<br>
Remark: The type of the Self parameter must be of the same class as the class the method is defined in."<br>
<br>
1. This code snippet fails to compile with the message "Message handlers can take only one call by ref. parameter" (revision 30487, $mode objfpc)<br>
2. "[...] When encountering such a method, [...]": What are the exact criteria: the parameter name, the parameter type, ...?<br>
3. Can anybody explain what the part "The result of this is that it is possible to pass Self as a parameter to such a method." entails? How can it be passed with DispatchStr?<br>
4. Can somebody give an example on how to use this functionality?</blockquote></div></div></div><div dir="auto"><br></div><div dir="auto">Judging from the implementation inside the RTL I'd say that this is a bug in the documentation. String message methods work like ordinal ones and take only one parameter. </div><div dir="auto"><br></div><div dir="auto">Regards, </div><div dir="auto">Sven </div><div dir="auto"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><font color="#888888"><br></font></blockquote></div></div></div></div>