DWScript: использование события в открытом классе Delphi
Я выставил класс Delphi скриптам, используя метод TdwsUnit.ExposeRTTI
. Он отлично работает с базовыми типами данных.
Однако он не работает, когда я добавляю TNotifyEvent
. Мой класс Delphi имеет свойство OnChange : TNotifyEvent
и при назначении этого OnChage
в script я получаю сообщение об ошибке
"Syntax Error: More arguments expected!"
Похоже, компилятор script понимает, что я хочу вызвать обработчик событий вместо назначения свойства OnChange
. Добавить знак "@"
не помогает.
Как мой объект Delphi имеет обработчик события с кодом своего обработчика в script?
С уважением.
Ответы
Ответ 1
Я работал над этой проблемой, используя сообщения Windows. Мой сценарий теперь использует насос сообщений, и открытые экземпляры публикуют некоторые пользовательские сообщения, чтобы сообщить сценарию о том, что произошло событие. затем скрипт перезвонит Delphi-коду, чтобы узнать подробности. Конечно, мне пришлось реализовать GetMessage/PeekMessage/TranslateMessage и DispatchMessage.