[fpc-pascal] const parameter writeable

Michael Müller mueller_michael at nikocity.de
Tue May 2 08:00:51 CEST 2006


On Mon, May 01, 2006 at 12:07:55PM -0600, L505 <fpc505 at z505.com> wrote:
> 
> > > Only the pointer itself is the parameter and read-only. Where the pointer
> > > points to is irrelevant.
> 
> I remember this from using classes where you can still access the class properties -
> should have thought about that before posing the question :).
> 
> >
> > But in this case I'm wondering why you want to give a pointer instead
> > of the real type?
> 
> 
> did you mean this ? :
> 
>    procedure ChangeRec1(const Rec: TSomeRec);
>    begin
>      Rec.a:= 'string A';
>    end;

Yes.

> Because I can't pass a PSomeRec to that function, only a TSomeRec

Where is the problem? If you allocated the memory by new() as in your
example you could call
ChangeRec1(RecPtr^);
and the compile (hopefully) uses the pointer.

But in this case you will get an compiler error because you can't
change a constant value.

It seemed that I didn't get the point from your original mail:
Name the procedure CHANGERec1 and change a value but declare the
parameter as constant.

> Otherwise, I don't know what you mean..

Now _I_'m a little bit confused.

Michael



More information about the fpc-pascal mailing list