<p>Am 12.12.2016 15:09 schrieb "Maciej Izak" <<a href="mailto:hnb.code@gmail.com">hnb.code@gmail.com</a>>:<br>
><br>
><br>
> 2016-12-12 14:27 GMT+01:00 Sven Barth <<a href="mailto:pascaldragon@googlemail.com">pascaldragon@googlemail.com</a>>:<br>
>><br>
>> I'm still thinking about a solution that will satisfy both of our points as good as possible - yes, I already have an idea. Maybe I'll share it this evening when I'm home again.<br>
><br>
><br>
> Do you mean :<br>
><br>
> === code begin ===<br>
>   TRecordTypeField = packed record // without "Field: TManagedField"<br>
>     Flags: Byte; // visibility<br>
>     Name: ShortString;<br>
>   end;<br>
><br>
> ...<br>
>         { tkRecord }<br>
>         property ManagedFldCount: Integer read GetManagedFldCount;  deprecated 'Use TotalFieldCount'; // return TotalFieldCount<br>
> ...<br>
>       tkRecord: (<br>
>         RecSize: Integer;<br>
>         ManagedFieldCount: Integer;<br>
>         TotalFieldCount: Integer;<br>
>        {TotalFields: array[0..TotalFieldCount - 1] of TManagedField;<br>
>         ManagedFields: array[0..ManagedFieldCount - 1] of TManagedField; // or indirect pointer to init table ? <br>
>         RecFields: array[0..TotalFieldCount - 1] of TRecordTypeField});<br>
> === code end ===<br>
><br>
> Full backward compatible... Fair enough and a little Delphi incompatible (it is already incompatible so no big difference and no redundant info for TRecordTypeField)</p>
<p>Nearly. ;) I'll reply later on in the other thread.</p>
<p>Regards,<br>
Sven</p>