On 26.02.2013 18:22, Jürgen Hestermann wrote:
Am 2013-02-26 16:15, schrieb ListMember:
Is it possible to forward declare records the way we can with classes?
Well, I know that you can do something like this:
PTreeType = ^TreeType;
TreeType = record
...;
...;
Dirs : PListType;
end; { of record }
You can see that "TreeType" is used in the first line although it is not
(yet) defined.
As long as you declare the type within the same "Type" section the
compiler swallows it.
He wants to have this supported:
=== example begin ===
type
SomeType1 = record;
SomeType2 = record;
SomeType1 = record
// ...
property SomeProperty: SomeType2 read ... write ...
end;
SomeType2 = record
// ...
property SomeProperty: SomeType1 read ... write ...
end;
=== example end ===
Just in case you aren't up to date with FPC's supported language,
Jurgen, the following works in FPC out of Delphi compatibility since
2.6.0 (though it needs {$modeswitch advancedrecords} in non-Delphi modes):
=== example begin ===
type
SomeType = record
// ...
property SomeProperty: SomeType read ... write ...
end;
=== example end ===
What still doesn't work (and will never work [and doesn't work in Delphi
either :P ]) is this:
=== example begin ===
type
SomeType = record
SomeField: SomeType;
end;
=== example end ===
Regards,
Sven
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus