[fpc-devel] Class property and virtual getter

Michael Schnell mschnell at lumino.de
Fri May 23 12:13:11 CEST 2014


On 02/27/2014 04:35 PM, Jonas Maebe wrote:
>
> You have to declare an instance and then call its property. You don't 
> have to instantiate the instance if the property maps to a class method.
>
>> Technically there's some obstacle to allow such construct?
>
> Class properties should be accessible from within static class 
> methods. Having them accessible depending on the getter/setter they 
> use (static or not) would break orthogonality (the 
> visibility/usability must depend on the interface, not on the 
> implementation of the interface).

I just came across the same issue and as well got the error "Only class 
methods, class properties and class variables can be referred with class 
references".

Hence I cant do "TmyClass.myProperty:=xyz;"
but I _can_ do "TmyClass.SetmyProperty(xyz);"
I in fact directly calling the "class" function that is denoted in the 
definition of the property.

Hence: I am allowed to use a class variable instead of a property, and I 
am allowed to call the setter class function, but I am not allowed to 
use the syntax candy provided by the property keyword.

In fact I don't see why this should make sense.


The error message suggest that it should be possible to define a "class 
property" similar to a class function. But this syntax seems to be 
illegal (says the appropriate error message).


-Michael



More information about the fpc-devel mailing list