[fpc-pascal] How do I take the float type of a field from a record?

silvioprog silvioprog at gmail.com
Fri Dec 14 07:44:30 CET 2018


Oh, please ignore and sorry for noise. I found the solution as soon as I
sent the e-mail. -.-

var
  F: PManagedField;
  R: TTestRecord;
  T, T2: PTypeData;
  I: Integer;
begin
  R := Default(TTestRecord);
  T := GetTypeData(TypeInfo(R));
  F := PManagedField(PByte(@T^.TotalFieldCount) + 4);
  for I := 0 to Pred(T^.TotalFieldCount) do
  begin
    if F^.TypeRef^.Kind = tkFloat then
    begin
      T2 := GetTypeData(F^.TypeRef);
      WriteLn(F^.TypeRef^.Kind, ':', T2^.FloatType);
    end;
    Inc(F);
  end;
end;

time to go to bed.

-- 
Silvio Clécio
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20181214/a4dbfc3e/attachment.html>


More information about the fpc-pascal mailing list