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
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