A partir de Delphi 2010 podes usar RTTI
Código Delphi
[-]
uses
Rtti;
procedure TForm1.Button1Click(Sender: TObject);
var
Ctx: TRttiContext;
T: TRttiType;
F: TRttiField;
Fields: TArray;
begin
Memo1.Lines.Clear;
T := Ctx.GetType(TypeInfo(TXtradata));
if not Assigned(T) then
Exit;
Fields := T.GetFields;
Memo1.Lines.Add('Type: ' + T.Name);
for F in Fields do
Memo1.Lines.Add(F.Name);