Интеграция DWScript и Внешних Класcов: Вызов Процедур из Классов DelphiDelphi , Компоненты и Классы , RTTIВ современном программировании часто возникает необходимость интеграции различных скриптовых движков с внешними классами и процедурами, написанными на языке Object Pascal, который используется в среде разработки Delphi. Одним из популярных скриптовых движков, который можно интегрировать с Delphi, является DWScript. ПроблемаПользователь столкнулся с необходимостью вызова процедуры из класса, созданного в основном окне формы. Вопрос заключался в том, возможно ли это сделать, следуя примеру псевдокода:
РешениеДля того чтобы вызвать процедуру из класса, созданного в Delphi, на нем нужно сначала реализовать интерфейс с использованием компонента
ОбсуждениеВозникает вопрос: что делать, если в классе много методов? Необходимо ли добавлять их все вручную в интерфейс скриптового движка? Существует ли более простой способ общения с "внешним миром"? Нельзя ли это сделать через механизм RTTI (Runtime Type Information)? На текущий момент для взаимодействия с классом со стороны скриптового движка действительно требуется ручная настройка. DWScript был разработан как самодостаточная система для создания веб-страниц, а не как слой автоматизации для полноценной кодовой базы. Однако, существуют ограниченные возможности RTTI для экспорта и подключения через RTTI, которые позволяют получить доступ к классам Delphi через RTTI. Но большинство классов Delphi не считаются "безопасными" для использования в скриптах, так как легко можно вызвать сбой в работе хоста или утечку памяти. Альтернативный способ — экспонирование классов как объекты OLE Automation, после чего можно использовать COM-соединитель DWScript для доступа к ним. Это имеет преимущество, что при экспонировании объектов автоматизации обычно проводится укрепление против утечек памяти и висячих указателей, и эти классы автоматизации будут доступны из других COM-средах. ЗаключениеДля интеграции DWScript с внешними классами Delphi необходимо использовать компонент Интеграция скриптового движка DWScript с внешними классами Delphi и вызов процедур из этих классов. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |