Как определить, является ли метод потомком TNotifyEventDelphi , Компоненты и Классы , RTTIКак определить, является ли метод потомком TNotifyEvent
Автор: Jack Sudarev If I am given a TPersistent object, and a method name, is there a way to determine if the name is an event of TNotifyEvent type? For example, given a TPersistent lMyObj and an event name, "OnDataChanged", how can I determine if OnDataChanged is a TNotifyEvent? function IsNotifyEvent(Sender: TObject; const Event: string): Boolean; var PropInfo: PPropInfo; Method: TNotifyEvent; begin Result := False; PropInfo := GetPropInfo(Sender.ClassInfo, Event); if not Assigned(PropInfo) then Exit; if PropInfo.PropType^.Kind <> tkMethod then Exit; Method := TNotifyEvent(GetMethodProp(Sender, PropInfo)); Result := Assigned(Method); end; Here is the translation of the text into Russian: Код, который вы предоставили, является хорошим стартом для определения типа события Сначала метод Вторично, при вызове Вот как вы можете исправить эти проблемы:
В этом коде Обратите внимание, что этот код предполагает, что класс-информация объекта имеет событие с тем же именем, которое передается в функцию. Если объект не имеет такого события, или если он имеет свойство с тем же именем, но не типа В статье описывается функция IsNotifyEvent, которая determines whether a given method name is an event of type TNotifyEvent by checking if the property with that name exists and its value is a TNotifyEvent method. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |