Адрес этой странички: 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 в контексте системы 1Cv8 можно посмотреть на сайте фирмы 1С : http://v8.1c.ru/overview/IntegrationActiveX.htm
 

 

1 Создание ActiveFormX и "внедрение" ее в форму внешней обработки 1Cv8
2 Продолжение. Свойства и методы ActiveFormX (доступ из 1Cv8)
3 Продолжение. События ActiveFormX. Обработчики событий (от ActiveX-формы) в контексте 1Cv8
4 Продолжение. Считывание (в контексте 1Cv8) информации из открытого (в контексте нашей ActiveX-формы) набора данных.

Функционал, который возлагается на разрабатываемую 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 кб).

 

 

 

Продолжение ...

1 Создание ActiveFormX и "внедрение" ее в форму внешней обработки 1Cv8
2 Продолжение. Свойства и методы ActiveFormX (доступ из 1Cv8)
3 Продолжение. События ActiveFormX. Обработчики событий (от ActiveX-формы) в контексте 1Cv8
4 Продолжение. Считывание (в контексте 1Cv8) информации из открытого (в контексте нашей ActiveX-формы) набора данных.

 


(c) Сергей Попов, респ.Коми, г.Усинск, 2007  Письмецо написать ...


Hosted by uCoz