Delphi RTTI - pobieranie metody i jej wlasniwosci

Delphi RTTI - pobieranie metody i jej wlasniwosci
YA
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam.

Czy wie ktos z szanownych forumowiczow jak wyciagnac z klasy metode. Otoz klasa znajduje sie w BPL stworzonym przeze mnie i jest ladowana dynamicznie. Po jej zaladowaniu rejestruje klase (dziedziczaca z TPersistent) po sekcji initialization . To dziala, wyciagniecie metody poprzez instancjaklasy.GetMethodAdress('nazwa') tez dziala. Teraz czesc problematyczna

Kopiuj
i:=0;
try
  GetPropList(testclass.ClassInfo,tkProperties + [tkMethod],PropList);
  while (PropList^[i]<>Nil)and(i<High(PropList^)) do
  begin
   ShowMessage(PropList^[i].Name+':'+PropList^[i].PropType^.Name +' name index'+ IntToStr(PropList^[i].NameIndex));
   Inc(i);
  end;
finally
  FreeMem(PropList);
end;

Owy kod pobiera propertiesy, aczkolwiek nie pobiera procedury która jest w klasie w sekcji published. Moje pytanie -dlaczego? Czy oprócz {M+} trzeba coś jeszcze ustawic w kompilatorze? jest typ tkMethod w paczce systemowej TypInfo, który ma pola odpowiadające temu co che dostać. Niestety nie wiem jak się dostać do metody poprzez RTTI. Trochę chaotycznie opisałem mój problem, ale mam nadzieje ze ktoś mi pomoże ;-)

Pozdrawiam

Kopiuj
Wodzu
  • Rejestracja: dni
  • Ostatnio: dni
0

Moze sprobuj najpierw wylistowac metody dla tej klasy bez ladowania z BPL'a?
Bedziesz przynajmniej wiedzial czy problem lezy w BPL'u czy tez nie :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.