Как определить, унаследовано ли свойство от определённого класса?

Материал из DRKB

Как определить, насдледовано ли свойство от определённого класса?[править | править код]

function GetFontProp(anObj: TObject): TFont;
var
  PInfo: PPropInfo;
begin
  { Try to get a pointer to the property information for a property with the name 'Font'.
  TObject.ClassInfo returns a pointer to the RTTI table, which we need to pass to GetPropInfo }
  PInfo := GetPropInfo(anObj.ClassInfo, 'font');
  Result := nil;
  if PInfo <> nil then
    { found a property with this name, check if it has the correct type }
    if (PInfo^.Proptype^.Kind = tkClass)
    and GetTypeData(PInfo^.Proptype^)^.ClassType.InheritsFrom(TFont)
    then
      Result := TFont(GetOrdProp(anObj, PInfo));
end;


Author: Peter Below
Source: Взято из http://www.lmc-mediaagentur.de/dpool
ID: 00278