![]() |
![]() ![]() ![]() ![]() |
|
Как определить, насдледовано ли свойство от определённого классаDelphi , Компоненты и Классы , RTTI
Автор: Peter Below
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;
Функция Delphi Вот шаг за шагом, как она работает:
Если такого свойства не существует или его тип не соответствует ожидаемому, функция возвращает Таким образом, это позволяет динамически инспектировать свойства класса объекта на этапе выполнения. В статье описывается функция GetFontProp, которая позволяет определить, наследуется ли свойство 'Font' от определенного класса в программировании на языке Delphi. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||