Alexander Klenin wrote:
On Sat, Nov 7, 2009 at 14:15, Martin <[email protected]> wrote:

The answer was that properties are meant to change the value on the object
immediately. Also a property setter can raise an exception, or additional
actions can take place or the value can be substituted....
All this wouldn't happen with a temp variable (or at best deferred).
Therefore the behaviour would not be according to the rules of properties

I thought about that too. There are few counter-arguments here:

Strictly speaking, properties are not *meant* to change anything
neither immediately nor
As I said it is not my argument, you better take it to the fpc list.

The one thing I may not have repeated clear enough: "expected to change"

Of course the setter is expected to change (at least a member variable). So if your functions/procedure does
 MyProc(var SomeValueFromProertyasTempVar: integer);
begin
   SomeValueFromProertyasTemp := 1;
   Foo();
end

and Foo reads the property in question, then Foo sees the old value, even so it is expected to have changed already.



--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to