On 11/24/2012 09:06 AM, Jonas Maebe wrote:

On 24 Nov 2012, at 17:55, bsquared wrote:

I followed the example on the wiki page, but the compiler disallowed both of 
the following attempts.

On which wiki page did you find this code?

The code on the wiki does conform to your helpful comments.
http://wiki.freepascal.org/extended_class_syntax


{$mode objfpc}{$H+}

TExample1 = class
private
  const
    CN_CONST = 'EXAMPLE CONSTANT';
published
  property Example: string
    read CN_CONST;
end;

Error: Unknown class field or method identifier "CN_WELCOME"

Properties can only read via methods or fields, not via constants. A constant 
is not the same as a field. Does Delphi allow the above?

TExample2 = class
private
  fExample: string;
  const
    CN_CONST = 'EXAMPLE CONSTANT';
published
  property Example: string
    read fExample
    write fExample
    default CN_CONST;
end;

Error: Property can't have a default value

Properties that return strings cannot have a default value. Only immediate 
values that moreover fit in 32 bits can be used as default value, due to the 
format of the RTTI. See http://bugs.freepascal.org/view.php?id=19199 for more 
information.

Also, What is the static keyword on the class method?
class procedure SetSomeClassVar(const AValue: TSomeType); static;

It results in the class method not getting a hidden "self" parameter, which 
otherwise contains the class reference on which the class method was invoked.


Jonas_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Thank you for the clarifications.

--
Regards,
Brian

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to