Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание визуального компонента не на форме 
V
    Опции темы
Freak_FB
Дата 28.10.2008, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ктулхувед
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 13.10.2006

Репутация: 1
Всего: 4



Есть у меня ActiveX компонент для работы с базой данной Caché - VISM.ocx. Сам функционал компонента не в отображении его на форме. Но он ведёт себя после отображения именно как визуальный компонент - появляется на форме, имеет свойства положения и размера. Неправильно был сделан разработчиками, что тут скажешь.
В обычном Windows-приложении это не мешает - во время выполнения его не видно, задачу свою выполняет.
Но проблемы начинаются, когда я хочу его использовать, например, в службе. Возникает исключение после его создания: System.Threading.ThreadStateException: Создание экземпляра элемента управления ActiveX '...' невозможно: текущий поток не находится в однопоточном контейнере.
Как можно вырулить из такой ситуации? Как создать такой контрол не на форме, и быть способным с ним работать?

P.S.: Разработчик открыто заявляет, что такое поведение будет исправлено в следующих версиях компонента, но я же не собираюсь ждать, пока они это сделают...
The Caché Direct control (VISM.OCX) requires the use of some container, such as a PowerBuilder visual object or a Visual Basic form. For this reason, you cannot use the Caché Direct control with PowerBuilder’s non-visual objects. A future version of Caché Direct may however allow Caché Direct to be scripted as an Active X automation server. 


Это сообщение отредактировал(а) Freak_FB - 28.10.2008, 00:22


--------------------
user posted image
user posted image
Тонет Ктулху, все медведы горят в огне.
Я Креведко, очень страшно сегодня мне.

PM MAIL ICQ Skype GTalk Jabber   Вверх
Partizan
Дата 28.10.2008, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



Freak_FB, создавать новый STA поток, в котором собственно работать с контролом....

единственная трудность - придётся разруливать взаимодействие между потоками...


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Bogdan1024
Дата 28.10.2008, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 5
Всего: 13



Контрол визуальный, а службы иметь ничего визуального не могут. Мне почему-то кажется что никак :(


--------------------
user posted image
PM MAIL   Вверх
MasterOfCode
Дата 28.10.2008, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

Репутация: 4
Всего: 27



Цитата(Bogdan1024 @  28.10.2008,  14:37 Найти цитируемый пост)
службы иметь ничего визуального не могут

Вроде как можно нацепить на службу GUI, используют .NET Remoting или WCF. Недавно такую тему поднимали.


--------------------
user posted image
PM ICQ   Вверх
Freak_FB
Дата 28.10.2008, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ктулхувед
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 13.10.2006

Репутация: 1
Всего: 4



Суть не в том шоб ГУИ повесить на службу. Мне та визуальность на фиг не нужна, я же сказал - компонент не имеет функционала визуального, он просто криво сделан.
Пробовал добавить этот компонент в консольное приложение - создало и не матюкнулось даже. А всё потому что был атрибут STAThread у метода Main().
Вопрос по теме: у виндовой проги такой атрибут стоит на вызове Main(), где создаётся сам класс приложения и окно. А где этот атрибут можно повесить в службу?


--------------------
user posted image
user posted image
Тонет Ктулху, все медведы горят в огне.
Я Креведко, очень страшно сегодня мне.

PM MAIL ICQ Skype GTalk Jabber   Вверх
Partizan
Дата 28.10.2008, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



Freak_FB, я ж говорю, создавай новый STA поток и всю работу с этим контролом пихай туда...


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0558 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.