как расширить Rtti

отредактировано 16:51 Раздел: FastScript
добавил uses fs_iclassesrtti,fs_iformsrtti

Теперь скрипт видит классы и методы, но не все методы.
Мне нужно добавить метод TControl.FindComponent(), как его добавить?

Пробовал так:
  with fsGlobalUnit.AddClass(TControl,'TObject') do
  begin
    AddMethod('function FindComponent(const AName: string): TComponent;',TControl__CallMethod);
  end;

не работает, Access Violation.

Не с нуля же все классы добавлять?

Комментарии

  • Stalker4Stalker4 123
    отредактировано 16:51
    muaddib написал: »
    добавил uses fs_iclassesrtti,fs_iformsrtti

    Теперь скрипт видит классы и методы, но не все методы.
    Мне нужно добавить метод TControl.FindComponent(), как его добавить?
    Не с нуля же все классы добавлять?
    С нуля конечно не надо. Вот код, как можно добавлять методы и public-свойства в уже ранее объявленные в FS-RTTI классы.
    with fsGlobalUnit.FindClass('TControl') do
      begin
        AddMethod('function FindComponent(const AName: string): TComponent;',TControl__CallMethod);
      end;
    
    Ну и не забыть конечно в CallMethod обработать вызов добавленного метода/свойства (в данном случае метода FindComponent).

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.