Delphi Insufficient RTTI available to support this operation -


i new using rtti , i'm stuck on error.

i trying call procedure name , pass parameter array of tvalue. first problem getparameters returns array of 0 length (instead of 1), , can't ignore try call procedure empty array.

here's code:

procedure tformgenpopupmessaggi.execmethod(form : tobject; methodname:string; const args: array of tvalue); var  r : trtticontext;  t : trttitype;  m : trttimethod;  lparams : tarray<trttiparameter>; begin   t := r.gettype(tformacqgestionerichiesteacquisto);   m in t.getdeclaredmethods     if (m.parent = t) , (m.name = methodname)then     begin       lparams := m.getparameters;       showmessage(inttostr(length(lparams)));       m.invoke(tformacqgestionerichiesteacquisto.create(self), parametri);     end; end;  procedure tformgenpopupmessaggi.eseguimessaggio(sender : tobject);   var procedura, tipoclasse : string;       argomenti : string;       arrayargomenti : array of tvalue;       idmessaggio, idelenco : integer;       : integer;       c : trtticontext;       o : tobject; begin     [...]`     procedura := qgenerica.fieldbyname('nome_procedura').asstring;     [...]     tipoclasse := 'u' + copy(qgenerica.fieldbyname('nome_form').asstring, 6, 1000) + '.' +         qgenerica.fieldbyname('nome_form').asstring;      o := (c.findtype(tipoclasse) trttiinstancetype).metaclasstype.create;      if length(arrayargomenti) = 0       execmethod(o, procedura,[])     else       execmethod(o, procedura, arrayargomenti);  [...] end;     

and called procedure is:

procedure trovarichiesta(id : integer); 

declared in public in class type tformacqgestionerichiesteacquisto. code find procedure name correctly, create new form class correctly don't give me parameter showmessage(inttostr(length(lparams))) result 0.

all other variables correctly initialized. there type of keys define, in order enable rtti?

to detailed rtti turn on {$typeinfo} , {$methodinfo} compiler directives explained here.


Comments

Popular posts from this blog

c# - How to get the current UAC mode -

angularjs - ng-repeat duplicating items after page reload -

javascript - What's causing this slow/delayed audio playback in Safari? -