![]() |
![]() ![]() ![]() ![]() |
|
Определение наследника класса по имени - аналог 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 | ||||