TRttiRecordType (Delphi)
Contents
Description
This example shows how to get the RTTI available for records methods.
Code
program Program1;
{$APPTYPE CONSOLE}
uses
  SysUtils,
  Rtti;
type
  TKey = record
  private
    FData: array[0..15] of Byte;
  public
    function GetByte(Index: Integer): Byte;
    // ...
  end;
function TKey.GetByte(Index: Integer): Byte;
begin
  // ...
end;
var
  LContext: TRttiContext;
  LType: TRttiType;
  LRecord: TRttiRecordType;
  LMethod: TRttiMethod;
begin
  LContext := TRttiContext.Create;
  LType := LContext.GetType(TypeInfo(TKey));
  if LType.IsRecord then
  begin
    LRecord := LType.AsRecord;
    { List all TKey methods }
    for LMethod in LRecord.GetMethods do
    begin
      Writeln(LMethod.ToString);
    end;
  end;
  LContext.Free;
end.
Console Output
function GetByte(Index: Integer): Byte
Uses
- System.Rtti.TRttiType.AsRecord ( fr | de | ja )
 - System.Rtti.TRttiType.GetMethods ( fr | de | ja )