<div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Michael Van Canneyt <<a href="mailto:michael@freepascal.org">michael@freepascal.org</a>> schrieb am Mi., 14. Aug. 2019, 18:24:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Basically any operation that requires an address is not allowed.<br>
That += is using an address is an implementation detail of the compiler.<br>
Same as Inc() or In/Exclude(). I don't know the exact reason for this limitation,<br>
but it's bound to be a good one, otherwise it would have been lifted a long time<br>
ago...<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">The restriction regarding taking an address was only started to be enforced in 2.4.0 (see <a href="https://wiki.freepascal.org/User_Changes_2.4.0#Treating_direct-mapped_properties_as_regular_fields">https://wiki.freepascal.org/User_Changes_2.4.0#Treating_direct-mapped_properties_as_regular_fields</a>) and further extended to records in 2.6.0 (see <a href="https://wiki.freepascal.org/User_Changes_2.6.0#Taking_the_address_of_fields_of_record_properties">https://wiki.freepascal.org/User_Changes_2.6.0#Taking_the_address_of_fields_of_record_properties</a> ). The idea is to have properties backed by a field and backed by methods behave identically. </div><div dir="auto"><br></div><div dir="auto">Regards, </div><div dir="auto">Sven </div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
</blockquote></div></div></div>