There are a number of bugs in this area of D3DX9 header translation (updated version will be posted soon) what will not allow you to implement loading meshed this way.
But below I provide code snippet from working Delphi sample what uses this technique (and this sample will be published as soon as haders will be available).
General idea what you can't currently in Delphi declare inherited records what are statically allocated. One of possible solutions can be to used old Object/Turbo Pascal "object" keyworded classes, but more streamlined solutions is to declare another record what includes original data fields.
[pascal][background=#FFFFFF][normal=#000000][number=#0000FF][string=#0000FF][comment=#248F24][reserved=#000000] PD3DXFrameDerived = ^TD3DXFrameDerived;
TD3DXFrameDerived = packed record { public TD3DXFrame - waiting for Delphi8 }
Name: PAnsiChar;
TransformationMatrix: TD3DXMatrix;

pMeshContainer: PD3DXMeshContainer;

pFrameSibling: PD3DXFrame;
pFrameFirstChild: PD3DXFrame;
////////////////////////////////////////////
CombinedTransformationMatrix: TD3DXMatrixA16;
end;
[/pascal]
Another solutions is to declare records something like this (have not tryied myself):
[pascal][background=#FFFFFF][normal=#000000][number=#0000FF][string=#0000FF][comment=#248F24][reserved=#000000] PD3DXFrameDerived = ^TD3DXFrameDerived;
TD3DXFrameDerived = packed record { public TD3DXFrame - waiting for Delphi8 }
FrameOriginal: TD3DXFrame;
////////////////////////////////////////////
CombinedTransformationMatrix: TD3DXMatrixA16;
end;
[/pascal]
Generally problem with classes is what whey can't be allocated statically.