Hola.
En Delphi 7 no le veo mucho sentido remontar mas allá de
TComponent por que por ejemplo el código:
Código Delphi
[-]
{$M-}
procedure GetMethodNames(AClass: TClass; TS: TStrings);
var
I: Integer;
pInf: PPropList;
begin
if not Assigned(AClass) then Exit;
for I := 0 to GetPropList(AClass.ClassInfo, pInf) - 1 do
if pInf[i].PropType^.Kind = tkMethod then
TS.Add(Format('%s: %s', [pInf[i].Name, pInf[i].PropType^.Name]));
end;
no generará error si envío como argumento un objeto auxiliar:
Código Delphi
[-]
GetMethodNames(TStringList, Memo1.Lines);
pero tampoco mostrará los eventos
OnChange y
OnChanging de la clase enviada.
En este momento no imagino el caso, pero tal vez exista algún caso para el que convenga declarar el parámetro de tipo
TPersistent.
Saludos