Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) .NET, ActiveX, перехват событий. Ошибка (?) (число прочтений - 18191 )
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
.NET, ActiveX, перехват событий. Ошибка (?)
23. Декабря 2006 :: 10:53
Печать  
Если ActiveX контрол написан на .NET, то ни 1С++ ActiveX (2.0.3.1), ни EventProxy не ловят события этого контрола. Для сравнения, ActiveX Control Test Container (из Visual Studio 6.0 Tools) события ловит. С этим можно что-то сделать?
« Последняя редакция: 23. Декабря 2006 :: 14:24 - berezdetsky »  

ActXTest.zip ( 53 KB | Загрузки )

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #1 - 27. Января 2007 :: 10:25
Печать  
У меня ActiveX Control Test Container даже не дает вставить ни один из контролов System.Windows.Forms Печаль
Точнее их даже нет в списке.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #2 - 27. Января 2007 :: 10:56
Печать  
Степ, с выздоровлением? Подмигивание
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #3 - 29. Января 2007 :: 09:52
Печать  
steban писал(а) 27. Января 2007 :: 10:25:
У меня ActiveX Control Test Container даже не дает вставить ни один из контролов System.Windows.Forms Печаль
Точнее их даже нет в списке.

У меня тоже не сразу получилось.  Улыбка
Посмотри пример в (0). Там хитрость - запись ключа в реестр.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #4 - 29. Января 2007 :: 10:20
Печать  
berezdetsky писал(а) 29. Января 2007 :: 09:52:
Посмотри пример в (0). Там хитрость - запись ключа в реестр.

Улыбка А я ожидал, что regasm сам это сделает для классов из пространства имен System.Windows.Forms.
Скормить .NET контрол ActiveX Control Test Container'у удалось.
Только событий от контрола он получать не стал Печаль.
TstCon32.exe версии 6.0.0.8063 и размером 245 837 байт.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #5 - 29. Января 2007 :: 10:31
Печать  
TstCon32.exe версии 8.0.50727.42, собранный из исходников в MSDN, ведет себя точно также.
Т.е. события не обрабатывает, методы не вызывает Печаль
Пробовал на System.Windows.Forms.Button.

berezdetsky писал(а) 23. Декабря 2006 :: 10:53:
Для сравнения, ActiveX Control Test Container (из Visual Studio 6.0 Tools) события ловит.

Может еще какой секрет есть?  Подмигивание
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #6 - 29. Января 2007 :: 11:38
Печать  
steban писал(а) 29. Января 2007 :: 10:31:
Может еще какой секрет есть?  Подмигивание

Может, и есть.  Улыбка
Попробуй пример из (0). При установке свойства Val (строка) вызывается событие ValChanged.
Пример компилирую в VS 2005, TstCon32.exe версии 6.0.0.8063 (245837 байт).
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #7 - 13. Февраля 2007 :: 04:40
Печать  
Господа, а уменя ведь та-же проблема - сделал контрол на NET-е, а события в 1С не отсылаются. Я взял пример из (0), скомпиллировал и то же самое - если повесить контрол на форму сданную на NEt-е все нормально, вешаю на форму 1С - никакой реакции, вернее реакция на свойство Value есть, а события ValChanged нет. Компиллятор на VS2005 tstcon32 8.0.50727.42. Может что-нибудь постарее надо?
  

Константин
Наверх
 
IP записан
 
rtnm
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 1
Зарегистрирован: 08. Июля 2008
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #8 - 08. Июля 2008 :: 12:25
Печать  
Люди! Кто нибудь решил эту проблему с событиями....? Бьюсь уже 3 дня
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #9 - 08. Июля 2008 :: 12:32
Печать  
rtnm писал(а) 08. Июля 2008 :: 12:25:
Люди! Кто нибудь решил эту проблему с событиями....? Бьюсь уже 3 дня

Нет
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #10 - 08. Июля 2008 :: 12:58
Печать  
berezdetsky писал(а) 23. Декабря 2006 :: 10:53:
Если ActiveX контрол написан на .NET, то ни 1С++ ActiveX (2.0.3.1), ни EventProxy не ловят события этого контрола. Для сравнения, ActiveX Control Test Container (из Visual Studio 6.0 Tools) события ловит. С этим можно что-то сделать?

А исходников этого ActiveX Control Test Container (из Visual Studio 6.0 Tools) нету случайно где-нибудь ? Улыбка
Я позанимался бы проблемой, если есть исходники Улыбка
  

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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #11 - 08. Июля 2008 :: 17:21
Печать  
.
  

tstcon.zip ( 179 KB | Загрузки )

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #12 - 16. Июля 2008 :: 11:53
Печать  
Вопрос: объясните чайнику в Нет, как зарегить указанный в первом посту контрол?
типа скачать то и то, запустить и т.д.

ЗЫ если что, Студия 2003 с каким-то Нетом уже установлена.
  

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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #13 - 16. Июля 2008 :: 12:08
Печать  
Утилиткой RegAsm с ключами /tlb /codebase. Пример сделан под 2005 студией, т.е. нужен .net 2.0.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #14 - 16. Июля 2008 :: 12:22
Печать  
1. regasm где находится?
2. Те исходники, что ты мне дал, рабочие? там События от Нет-контролов ловятся?
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #15 - 16. Июля 2008 :: 12:23
Печать  
berezdetsky писал(а) 16. Июля 2008 :: 12:08:
Утилиткой RegAsm с ключами /tlb /codebase. Пример сделан под 2005 студией, т.е. нужен .net 2.0.

и кого нужно регить? длл-файл _1cpptest.dll?
  

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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #16 - 16. Июля 2008 :: 12:33
Печать  
artbear писал(а) 16. Июля 2008 :: 12:22:
1. regasm где находится?
2. Те исходники, что ты мне дал, рабочие? там События от Нет-контролов ловятся?

1. В папке %SystemRoot%\Microsoft.NET\Framework\vXXX, где XXX - нужная версия фреймворка.
2. Если ты про исходники ActiveX Control Test Container, то это исходники, как они идут в составе MSDN. Я не пробовал их компилировать. Утилита события ловит.

artbear писал(а) 16. Июля 2008 :: 12:23:
berezdetsky писал(а) 16. Июля 2008 :: 12:08:
Утилиткой RegAsm с ключами /tlb /codebase.

и кого нужно регить? длл-файл _1cpptest.dll?

Да.

berezdetsky писал(а) 16. Июля 2008 :: 12:08:
Пример сделан под 2005 студией, т.е. нужен .net 2.0.

А вот для 2003 студии:
« Последняя редакция: 16. Июля 2008 :: 13:44 - berezdetsky »  

ActX2003.zip ( 27 KB | Загрузки )

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #17 - 17. Июля 2008 :: 04:33
Печать  
Проблему с НЕТ-АктивИксами и их событиями удалось решить.
Их события заработали.
Сейчас добью последние штрихи на юнит-тестах, вычищу исходники и выложу тестовую сборку icpp.
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #18 - 17. Июля 2008 :: 05:23
Печать  
Выкладываю тестовую сборку icpp 3.0
для проверки событий NET-контролов.
У меня для выложенного контрола событие ValChanged работает.

Прошу протестить и отписаться о результатах на этом контроле, а также других.

ЗЫ также знатоков НЕТ прошу сообщить о контроле, который есть в любой поставке НЕТ, и у которого легко протестить событие.
Нужно для юнит-тестов АктивИкс.
  

icpp_activex_artbear_170708.rar ( 520 KB | Загрузки )

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #19 - 17. Июля 2008 :: 06:05
Печать  
artbear писал(а) 17. Июля 2008 :: 05:23:
Выкладываю тестовую сборку icpp 3.0
для проверки событий NET-контролов.

Прошу также проверить создание на форме одного НЕТ-контрола, отработку его события, затем, не закрывая форму, на этой же кнопке создать другой НЕТ-контрол и проверить уже его события.
Обязательно нужно 2 разных НЕТ-контрола.
Связка НЕТ+обычный АктивИкс у меня работает правильно.
  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #20 - 17. Июля 2008 :: 07:14
Печать  
Итишкин пистолет... Свершилось? Улыбка

Потестю сегодня!
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #21 - 17. Июля 2008 :: 11:21
Печать  
К сожалению, не совсем Печаль
События у части НЕТ-контролов действительно работают, как у автора ветки.

Но, например, для System.Windows.Forms.Button события не ловятся, т.к. там используется какой-то еще более хитрый способ доступа к событиями, чем нам (мне и steban-у) известен Печаль

Так что борьба продолжается.

ЗЫ поэтому предлагаю поюзать нужные вам контролы и убедиться точно.
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #22 - 17. Июля 2008 :: 11:24
Печать  
berezdetsky писал(а) 23. Декабря 2006 :: 10:53:
Если ActiveX контрол написан на .NET, то ни 1С++ ActiveX (2.0.3.1), ни EventProxy не ловят события этого контрола. Для сравнения, ActiveX Control Test Container (из Visual Studio 6.0 Tools) события ловит. ?

Для System.Windows.Forms.Button события не ловятся, юзаю ActiveX Control Test Container (из Visual Studio 6.0 Tools) Печаль Версия 6.0.0.8063

У меня для этого контрола даже InvokeMethods из меню не работает, пишет, что нет методов.

berezdetsky - поделись, какой объект проверял? Свой или системный?
  

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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #23 - 17. Июля 2008 :: 11:49
Печать  
artbear писал(а) 17. Июля 2008 :: 11:24:
Для System.Windows.Forms.Button события не ловятся, юзаю ActiveX Control Test Container (из Visual Studio 6.0 Tools) Печаль Версия 6.0.0.8063

У меня для этого контрола даже InvokeMethods из меню не работает, пишет, что нет методов.

berezdetsky - поделись, какой объект проверял? Свой или системный?

Контролы .NET - это не совсем ActiveX. Сначала ты расскажи, как ты засунул System.Windows.Forms.Button в ActiveX Control Test Container без обёртки? Озадачен
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #24 - 17. Июля 2008 :: 11:52
Печать  
berezdetsky писал(а) 17. Июля 2008 :: 11:49:
Сначала ты расскажи, как ты засунул System.Windows.Forms.Button в ActiveX Control Test Container без обёртки? Озадачен

Давай я за Артура отвечу.
Добавил в реестр ключ: HKEY_CLASSES_ROOT\CLSID\{1FCBDA5D-6F09-3A66-ACB8-1B0D748F5C13}\Control
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #25 - 17. Июля 2008 :: 12:08
Печать  
Без обертки это как?
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #26 - 17. Июля 2008 :: 12:17
Печать  
Нет, я реестр руками не правил.
Я зарегил контрол через regasm, потом зашел в Тестере во ВставитьКонтрол, далее в требуемые категории (или другую кнопку - одна из двух категорий), поставил галку на Нет объекты, и все, появились объекты System.*
Правда, объект появился, но свойства не работают в тестере Печаль
Поэтому и спрашиваю, как тебе удалось проверить свойства в этом тестере?
  

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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #27 - 17. Июля 2008 :: 12:36
Печать  
В общем, контрол должен быть основан на UserControl с явно определёнными свойствами, методами и событиями.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #28 - 17. Июля 2008 :: 13:24
Печать  
berezdetsky писал(а) 17. Июля 2008 :: 12:36:
В общем, контрол должен быть основан на UserControl с явно определёнными свойствами, методами и событиями.

Т.е. у тебя работает также твой контрол, а системные нет ?
  

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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #29 - 17. Июля 2008 :: 13:40
Печать  
Контролы .NET не реализуют всех необходимых интерфейсов для работы в качестве ActiveX - за ненадобностью. Для использования в унаследованных (aka устаревших) системах нужно делать свои контролы на основе UserControl. UserControl реализует интерфейсы, требуемые для использования в контейнере MFC. Т.е., скажем, для использования в контейнере VB нужны отдельные танцы с бубном.

Подробнее сейчас не скажу - детально с этим я разбирался достаточно давно и многое уже забылось.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #30 - 17. Июля 2008 :: 14:28
Печать  
berezdetsky писал(а) 17. Июля 2008 :: 13:40:
Контролы .NET не реализуют всех необходимых интерфейсов для работы в качестве ActiveX - за ненадобностью. Для использования в унаследованных (aka устаревших) системах нужно делать свои контролы на основе UserControl. UserControl реализует интерфейсы, требуемые для использования в контейнере MFC. Т.е., скажем, для использования в контейнере VB нужны отдельные танцы с бубном.

Нда. Похоже, так и есть.
http://msdn.microsoft.com/en-us/magazine/cc301750.aspx
Цитата:
But if I write a Windows Forms control, doesn't that mean that only .NET applications can use it? There aren't many of them out there, at least not yet, so shouldn't I wait for a critical mass before I invest my development dollars? To help you answer "No" to these questions, the UserControl base class contains all the functionality that it needs to be accessible to ActiveX control hosts such as Visual Basic 6.0. This will allow a developer of a .NET control to take advantage of the enormous installed base and make a lot of money.
     You have to write one relatively small piece of code to make your .NET control accessible to ActiveX hosts. ActiveX controls make several registry entries that standard COM servers don't, so you have to add this functionality to your .NET control. The CLR contains prefabricated functions that will make and remove these entries. These go by the names Control.ActiveXRegister and Control.ActiveXUnregister. You need to provide two external functions in your control class marked with attributes that tell the .NET COM registration utility to call them during the registration process. These functions need to delegate to ActiveXRegister and ActiveXUnregister (see Figure 14). That's the only extra piece of code that you have to write today, and I wouldn't be surprised if it moved into the base class in some future version.

Тогда вопрос можно считать закрытым.
Написание UserControl'а для обертки существующего контрола - тривиальная задача.
А чтобы ловились события UserControl'ов, Артур уже постарался.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #31 - 17. Июля 2008 :: 14:39
Печать  
steban писал(а) 17. Июля 2008 :: 14:28:
Написание UserControl'а для обертки существующего контрола - тривиальная задача.

А с помощью вот этой примочки: Microsoft Interop Forms Toolkit 2.0 так вообще плевое дело.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #32 - 17. Июля 2008 :: 15:03
Печать  
Я даже скачал попробовать.
Создал новый проект, добавил DataGridView и написал одну строчку кода.
Потом написал код, размещающий только что созданный контрол на форме 1С и поймал нужное событие. При этом использовалась тестовая сборка Артура, выложенная в этой ветке.
« Последняя редакция: 17. Июля 2008 :: 17:03 - steban »  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #33 - 18. Июля 2008 :: 03:22
Печать  
Вопрос: а нельзя ли это дело автоматизировать?
Например, сделать спец.контрол на Нет, который может включать любой другой контрол Нет, с прозрачной передачей всех событий, свойств и методов ?
  

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


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #34 - 18. Июля 2008 :: 07:05
Печать  
artbear писал(а) 18. Июля 2008 :: 03:22:
Вопрос: а нельзя ли это дело автоматизировать?
Например, сделать спец.контрол на Нет, который может включать любой другой контрол Нет, с прозрачной передачей всех событий, свойств и методов ?

Насчет свойств и методов - уверен, что реализуемо.
Насчет событий надо подумать....
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #35 - 13. Августа 2008 :: 22:53
Печать  
Хоть кто-то смог запустить System.Windows.Forms.ToolStrip или System.Windows.Forms.ToolBar ?

Проклял весь MS со всеми формами вместе взятыми Улыбка
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #36 - 25. Сентября 2008 :: 14:05
Печать  
Интересная разработка по NET-контролам http://infostart.ru/projects/2062 от Душелова.
Кто-нибудь (Артем? Улыбка ) может проверить NET-контролы с неработающими в 1С++ событиями вместе с этим контролом ?

Если удастся получить события от данного контрола, можно будет будет выполнить все, что нужно в 1С++, также нативно, как сделано для событий АктивИкс, ТП, Перехватчика и т.д.

Кто протестирует?
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #37 - 26. Сентября 2008 :: 06:44
Печать  
artbear писал(а) 25. Сентября 2008 :: 14:05:
Интересная разработка по NET-контролам http://infostart.ru/projects/2062 от Душелова.
Кто-нибудь (Артем? Улыбка ) может проверить NET-контролы с неработающими в 1С++ событиями вместе с этим контролом ?

Если удастся получить события от данного контрола, можно будет будет выполнить все, что нужно в 1С++, также нативно, как сделано для событий АктивИкс, ТП, Перехватчика и т.д.

Кто протестирует?

В итоге протестировал сам Улыбка
Свершилось - события System.Windows.Forms.Button ловятся в АктивИкс при помощи этого контрола

Просто у автора в демо-примере для 77 была опечатка -
событие контрола было описано как
АктХ_ПриВозникновАнииСобытия - букву "А" с буквой "е" перепутал Улыбка
Исправил, как положено, и события заработали.
.
Автору очередной респект. Молодец, так держать Улыбка
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #38 - 26. Сентября 2008 :: 13:49
Печать  
Блин, рано обрадовался Печаль
События-то ловятся, но вот параметры событий нифига не передаются.

Посмотрел код 1С++ в отладчике, похоже, что использование функции 1С в ((CBLMyEx*)NULL)->DispParamToValueEx неверно работает, если из ВК передается SafeArray, что и делает данная ВК

Либо я не умею готовить Печаль Улыбка
  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #39 - 01. Октября 2008 :: 19:46
Печать  
Пардон муа, Артур. Ушел в себя на пару недель - только вышел из спячки. Так ничего и не получилось? Печаль
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: .NET, ActiveX, перехват событий. Ошибка (?)
Ответ #40 - 02. Октября 2008 :: 03:37
Печать  
artbear писал(а) 26. Сентября 2008 :: 13:49:
Блин, рано обрадовался Печаль
События-то ловятся, но вот параметры событий нифига не передаются.

Да, пока именно такое состояние - события от NET есть, но их параметров нет Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать