Адрес этой странички:
http://d1cv8.narod.ru/top_005/d1cv8_20090926_001/d1cv8_20090926_003.htm Дата: 27.09.2009 Интернет-приложение к книге "Delphi и 1С:Предприятие.Программирование информационного обмена" |
Часть |
Глава 5. Расширение
функционала 1С.
ActiveFormX в среде
1Cv8.
(продолжение)
События ActiveFormX.
Обработчики событий (от ActiveX-формы)
в контексте 1Cv8
|
Функционал, который возлагается на разрабатываемую ActiveX-форму, может потребовать наличие механизма извещений (между ActiveX-формой и формой "внешней обработки" 1Cv8) о событиях, сгенерированных в контексте разрабатываемой ActiveX-формы.
Посмотрим, каким образом это можно реализовать ...
"Наделим"
нашу
ActiveX-форму способностью генерировать специальные
события в формате :
OnMySwitch(WhoIsIt, WhatIsIt);
Здесь :
OnMySwitch - событие (переключение состояния)
WhoIsIt
- источник события
WhatIsIt
- состояние источника события (после переключения)
Для этого нужно выбрать пункт меню "View" -> "Type Library" и, отметив строку IMy_ActiveFormX_01Events, открыть всплывающее меню (по правой кнопке мыши), где выбрать пункт "Method" :
Переименуем новое событие : OnMySwitch и создадим для него два входных параметра (согласно нашего функционала) :
Переименуем вкладку (с индексом=0) компонента TN1 : "События" и "кинем" на эту вкладку компонент TCheckBox :
Создадим обработчик события : "Переключение состояния" этого TCheckBox :
Доработаем исходный код нашей ActiveX-форму следующим образом :
Далее, скомпилировать проект (результирующий файл : My_ActiveFormX_01_afx.ocx).
Закрыть конфигуратор (и программу) 1Cv8.
Заменить ocx-файл с предыдущей версией нашей ActiveX-формы (в каталоге OCX) - на новый.
Зарегистрировать (если это еще не производилось с предыдущей версией ocx-файла) : RegSvr32 My_ActiveFormX_01_afx.ocx
Теперь, нужно открыть конфигуратор 1Cv8 :
Открыв нашу "внешнюю обработку" (файл Тест_My_ActiveFormX_01_afx_ocx_02.epf) увидим, что на странице свойств нашей ActiveX-формы появилась "заглушка" для обработчика события OnMySwitch :
Создадим обработчик этого события :
Теперь нужно сохранить изменения в новый файл: Тест_My_ActiveFormX_01_afx_ocx_03.epf
Запустить
программу 1С:Предприятие, открыть файл внешней обработки
Тест_My_ActiveFormX_01_afx_ocx_03.epf и
"пощелкать" мышкой по Delphi-компоненту TCheckBox :
Исходники этого примера можно скачать здесь : Delphi-проект (364 кб) , "Внешняя обработка" (1Cv8) (5.4 кб).
Расположим на нашей ActiveX-форме еще 3 разных источника событий :
Реализация
"обработчиков" (исходники) :
Форма "внешней обработки" 1Cv8 :
Реакция на событие (OnMySwitch) от ActiveX-формы :
Исходники этого примера можно скачать здесь : Delphi-проект (375 кб) , "Внешняя обработка" (1Cv8) (5.4 кб).