![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Определение наследника класса по имени - аналог ISDelphi , Компоненты и Классы , Классы
Автор: Игорь Шевченко { **** UBPFD *********** by delphibase.endimus.com **** >> Определение наследника класса по имени (аналог IS) Зависимости: SysUtils Автор: Игорь Шевченко, whitefranz@hotmail.com, Москва Copyright: Игорь Шевченко Дата: 13 мая 2002 г. ***************************************************** } { Возвращает true, если класс порожден от класса с именем Name } { Код не требует привязки к RTTI определяемого класса (не надо unit, где описан класс в uses указывать :-) } function HSClassBasedOn(Value: TClass; const Name: string): Boolean; begin Result := false; while Value <> nil do begin if SameText(Value.ClassName, Name) then begin Result := true; Exit; end; Value := Value.ClassParent; end; end; Программный код на Delphi! Обзор функции Цель: Функция determines, если класс ( Implementation: Функция принимает два параметра:
Пример использования: Предположим, у вас есть иерархия классов следующего вида:
В этом примере функция Alternative solution: Хотя эта реализация работает, вы можете рассмотреть более эффективный подход, используя функции RTTI (Run-Time Type Information) Delphi. Вот альтернативная реализация:
В этом варианте мы используем функцию В целом, этот код-снippet предоставляет полезную утилитарную функцию для определения, является ли класс наследником другого класса на основе его имени. Функция HSClassBasedOn позволяет определить наследника класса по имени, не требуя привязки к RTTI определяемого класса. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |