Ho un problema.
Il mio obiettivo è eseguire dei metodi presenti in una classe.
Mi spiego meglio.

Supponiamo di avere una form con solamente una TEdit e un TButton.
Nella TEdit inserisco il nome di un metodo presente in una qualsiasi classe ( per esempio il metodo GetControlsAlignment del TPanel ) e, alla pressione del bottone, eseguo il metodo.

Per eseguire il metodo uso l'Rtti in questo modo:
codice:
function TMyLibClass.RttiMethodInvokeEx( const lsMethodName:string; loRttiType : TRttiType; loInstance: TObject; const laoArgs: array of TValue ): TValue;
var
   lbFound                    :  Boolean;
   loMethod                   :  TRttiMethod;
   i                          :  Integer;
   laoParams                  :  TArray<TRttiParameter>;
begin
   Result                     := nil;
   try
      loMethod                := nil;
      lbFound                 := false;
      for loMethod in loRttiType.GetMethods do
      begin
         if SameText( UpperCase( loMethod.Name ), UpperCase( lsMethodName ) ) then
         begin
            laoParams         := loMethod.GetParameters;
            if Length( laoArgs ) = Length( laoParams ) then
            begin
               lbFound        := true;
               for i := 0 to Length( laoParams ) - 1 do
               begin
                  if laoParams[i].ParamType.Handle <> laoArgs[i].TypeInfo then
                  begin
                     lbFound  := false;
                     break;
                  end;
               end;
            end;
            if lbFound then
            begin
               break;
            end;
         end;
      end;
      if ( loMethod <> nil ) and
         ( lbFound ) then
      begin
         Result               := loMethod.Invoke( loInstance, laoArgs );
      end else
      begin
         raise Exception.CreateFmt( 'method %s not found', [lsMethodName] );
      end;
   except
   end;
end;
Il tutto funziona egregiamete, fino a quando non provo ad eseguire un metodo dichiarato private/protected.
Se non ho capito male il problema è che con l'Rtti riesco a vedere solamente i metodi pubblici. Esatto?
C'è un modo per accedere anche a quelli private/protected?