[fpc-pascal] Re: Linked list constant

Sven Barth pascaldragon at googlemail.com
Tue Mar 19 09:38:43 CET 2013


Am 19.03.2013 09:27, schrieb Martin Schreiber:
> On Tuesday 19 March 2013 09:06:31 leledumbo wrote:
>>> Really? No gain in the beloved readability?
>> Not for me, I always initialize code in "executable" section, keeping the
>> declaration section clean. That's what "readable" to me.
>>
>>> And it seems to me a "const" should not be changed by code. ;-)
>> Even if it's allowed, you're declaring typed constant, which is not a real
>> constant and has the same effect as initialized variable (e.g. you can
>> change the value later on). It only differs (from initialized var) when the
>> assignment happens inside a routine.
>>
> Delphi has {$J-} in order to set them readonly.
Do you know whether Delphi has by default $J+ or $J-?

> Another problem with Free Pascal in this context is that it is AFAIK not
> possible to define forward types which could be used as parameters for
> procedures used as procedure variables in later type definitions.
In case of records, classes and objects you can work around this with 
nested types (Note: for records the modeswitch advancedrecords is 
required in non-Delphi modes):

=== code begin ===

type
   TMyRecord = record
   public type
      TTest = procedure(aRec: TMyRecord);
   public var
     Test: TTest;
   end;

=== code end ===

And I just noticed: this example does not work in Delphi...

Regards,
Sven



More information about the fpc-pascal mailing list