Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема АктивИкс и глобальный модуль (число прочтений - 3307 )
Dmiter
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Местоположение: Киев
Зарегистрирован: 08. Января 2010
Пол: Мужской
АктивИкс и глобальный модуль
08. Января 2010 :: 18:54
Печать  
Хочу создать класс - наследник АктивИкса.Он должен быть виден во всех модулях формы и в глобальном модуле. Проблема: не знаю как отрабатывать события АктивИкса в классе. Связано с тем что во всех найденных примерах на форуме, обработка событий происходит после привязки к атрибуту формы. Атрибута формы, как и самой формы, в таком случае нету.
   Класс с такими возможностями мне необходим для работы с MS agent и Балуном. Хочу отойти по возможности от модальных окон пользователей.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: АктивИкс и глобальный модуль
Ответ #1 - 08. Января 2010 :: 19:12
Печать  
Dmiter писал(а) 08. Января 2010 :: 18:54:
Хочу создать класс - наследник АктивИкса.Он должен быть виден во всех модулях формы и в глобальном модуле. Проблема: не знаю как отрабатывать события АктивИкса в классе. Связано с тем что во всех найденных примерах на форуме, обработка событий происходит после привязки к атрибуту формы. Атрибута формы, как и самой формы, в таком случае нету.
  Класс с такими возможностями мне необходим для работы с MS agent и Балуном. Хочу отойти по возможности от модальных окон пользователей.

В совем КОП "ПоставщикДанных" одна из его частей (КоманднаяПанель) это и есть наследник от АктивИкс, там можешь посмотреть.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Dmiter
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Местоположение: Киев
Зарегистрирован: 08. Января 2010
Пол: Мужской
Re: АктивИкс и глобальный модуль
Ответ #2 - 08. Января 2010 :: 21:52
Печать  
Командная панель создается на элементе формы. Я же говорю о том, что мне необходимо создать объект АктивИкс без формы с обработкой событий возникаемых в данном АктивИксе. Можно сказать "глобальный" АктивИкс.
    Если я не совсем разобрался с Командной панелью прошу заранее извинения и тогда прошу более детального объяснения.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: АктивИкс и глобальный модуль
Ответ #3 - 09. Января 2010 :: 06:42
Печать  
1. Без привязки к форме тебе нужно юзать не АктивИкс, а простой COM-объект Печаль
ИМХО АктивИкс в 1С++ ВСЕГДА привязан к форме, поэтому АктивИкс из 1С++ тебе не подойдет.
А события КОМ-объектов 1С++ вроде бы не умеет юзать Печаль
Хотя еще можно попробовать юзать MSScriptControl.
Возможно, я ошибаюсь - опыт использования АктивИкс в 1С++ у меня не очень большой.
Выйди на пользователя steban - он автор класса АктивИкс, возможно, он тебе посоветует, как решить проблему.

2. Можно попытаться юзать "хитрый", но не простой способ способ - в ПриНачалеРаботыСистемы ты открываешь служебную форму, на которой есть АктивИкс, инициализируешь свой объект АктивИкс, сохраняешь его в глобальной переменной, закрываешь форму.
правда, будет небольшое мелькание Печаль
далее при открытии любой формы с помощью Перехватчика ты добавляешь скрытый АктивИкс на форму, подсовывая свою глоб.переменную, и перехватываешь опять же с помощью Перехватчика все нужные события.
Путь сложный Печаль но я пока проще не вижу.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: АктивИкс и глобальный модуль
Ответ #4 - 11. Января 2010 :: 10:04
Печать  
Смотри у меня , например..это:
http://infostart.ru/public/20885/

там есть то, что ты хочешь..

ЗЫ: для любой формы добавляется тулбар - активикс... и ловятся события его..
  
Наверх
 
IP записан
 
Dmiter
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Местоположение: Киев
Зарегистрирован: 08. Января 2010
Пол: Мужской
Re: АктивИкс и глобальный модуль
Ответ #5 - 11. Января 2010 :: 10:05
Печать  
Где-то читал что объект Форма -есть по себе не как ничто иное как объект класса CWND. Никто не пробовал получить хендл главного окна 1С и его использовать для подключение АктивИкса. Если нет может у кого-то есть какие-то соображения?
  
Наверх
 
IP записан
 
Dmiter
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Местоположение: Киев
Зарегистрирован: 08. Января 2010
Пол: Мужской
Re: АктивИкс и глобальный модуль
Ответ #6 - 11. Января 2010 :: 14:59
Печать  
Нашел - как можно сделать. Через eventproxy - подключаюсь к внешним событиям АктивИкса, через Перехватчик перехватываю ВнешнееСобытие и обрабатываю в классе. Когда что-то набросаю более менее пристойное, выложу. Может кому-то будет интересно?
  
Наверх
 
IP записан
 
Brr
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 142
Зарегистрирован: 26. Декабря 2006
Re: АктивИкс и глобальный модуль
Ответ #7 - 12. Января 2010 :: 06:08
Печать  
Будет
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать