<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2015-10-10 21:12 GMT+02:00 Sven Barth <span dir="ltr"><<a href="mailto:pascaldragon@googlemail.com" target="_blank">pascaldragon@googlemail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>"@@" (though I have to admit that I don't know where you got that @@ from; was that introduced in Delphi recently?)).<br>
<br>
It's not an easy topic and I'd really welcome the input of other core developers...<br></blockquote><div><br>Somehow I forgot to answer... <br><br>@@ is old syntax (maybe even from TP?). @@ is used to get pointer to variable which holds pointer to procedure/function.<br><br></div><div>=== begin code ===<br>procedure foo; begin end;<br><br></div><div>var<br></div><div>  p: procedure;<br></div><div>  pp: pointer;<br></div><div></div><div>begin<br></div><div>  Assert(@p = nil);<br></div><div>  Assert(addr(p) = nil);<br></div><div>  pp := @@p;</div><div>  Assert(pp <> nil);<br></div><div>  p := @foo;<br></div><div><div>  Assert(@p = @foo);<br></div><div>  Assert(addr(p) = addr(foo));<br></div><div>  Assert(pp = @@p);<br></div></div><div>end.<br></div><div>=== end code ===<br></div><div><br></div><div>another way to get pointer to that kind of variable instead of @@ is:<br><br></div><div>=== begin code ===<br></div><div>function getptr(var x): pointer;<br></div><div>begin<br></div><div>  Result := @x;<br></div><div>end;<br></div><div>var<br></div><div>  p: procedure;<br></div><div>  pp: pointer;<br></div><div>begin<br></div><div>  pp := getptr(p);<br></div><div>=== end code ===</div></div></div><div class="gmail_extra">-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>Best regards,<br>Maciej Izak</div></div></div>
</div></div>