[Lazarus] Declare record variant in it self
Michael Van Canneyt
michael at freepascal.org
Thu May 7 11:57:18 CEST 2015
On Thu, 7 May 2015, aradeonas wrote:
> Hi,
>
> I have a record and it has some value and a value with type of that record it self like this example but compiler wont allow me to do this and give "Type "TExampleRecord" is not
> completely defined" error,and I dont want to use class and keep creating and destroying it,they will be some simple record.
>
> //Works with class
>
> TExample=class
> s:string;
> E:TExample;
> end;
>
> //Doesn't work with record
>
> TExampleRecord=record
> s:string;
> ER:TExampleRecord;
> end;
You can never do this with records, it would recurse infinitely.
It works with a class, since a class is in fact just a pointer.
You must do
PExampleRecord=^TExampleRecord;
TExampleRecord=record
s:string;
ER:PExampleRecord;
end;
and allocate the record on the heap.
Michael.
More information about the Lazarus
mailing list