Delphi 2010 で一種のオブジェクト/レコード シリアライザーを作成しようとしていますが、レコードがバリアント レコードであるかどうかを検出する方法があるかどうか疑問に思っています。たとえば、Types.pas で定義されている TRect レコード:
TRect = record
case Integer of
0: (Left, Top, Right, Bottom: Longint);
1: (TopLeft, BottomRight: TPoint);
end;
シリアライザーはデータ構造に対して再帰的に動作する必要があるため、TPoint レコードに降りて、シリアライズされたファイルに冗長な情報を生成します。レコードの詳細情報を取得することで、これを回避する方法はありますか?