ActiveX EXE и UserControl

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

ActiveX EXE и UserControl

Сообщение NashRus » 06.09.2006 (Ср) 19:40

Доброе время суток, Уважаемые!

Правильно ли я понимаю, что не получиться иметь и успешно использовать UserControl'ы в проекте ActiveX EXE при Thread per Object ?

И если получиться, то, собственно, как ?

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 06.09.2006 (Ср) 21:11

Правый щелчок на проекты и
Add->User Control
#define ROFL 0xDDDD

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 06.09.2006 (Ср) 22:07

Их можно использовать где угодно.
Лучший способ понять что-то самому — объяснить это другому.

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 06.09.2006 (Ср) 22:31

Правый щелчок на проекты и
Add->User Control


спасибо. если что-то еще знаешь, тоже буду счастлив услышать.

Их можно использовать где угодно.


а вот интересно, ты сам пробывал ? и чтобы многопоточность работала ?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 06.09.2006 (Ср) 22:45

Я много чего пробовал. Но сначала хотелось бы узнать, что автор понимает под многопоточностью.
Лучший способ понять что-то самому — объяснить это другому.

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 06.09.2006 (Ср) 22:54

Но сначала хотелось бы узнать, что автор понимает под многопоточностью


сначало хотелось бы узнать ответ на мой вопрос.

автор пользуется энциклопедиями многопоточность

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 07.09.2006 (Чт) 9:04

Действительно, юзерконтролы нельзя использовать в ActiveX exe с Thread per object.
Лучший способ понять что-то самому — объяснить это другому.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 07.09.2006 (Чт) 11:01

Antonariy
Не читаем вопрос перед тем как давать ответ?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 07.09.2006 (Чт) 11:12

ANDLL, не знаем про ограничения на Thread per Object.

С другой стороны, NashRus, зачем задавать вопрос, на который сам vb дал категоричный ответ, заблокировав добавление юзерконтролов на форму и, главное, выдав сообщение с описанием причины?
Лучший способ понять что-то самому — объяснить это другому.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 07.09.2006 (Чт) 11:21

С третьей стороны, если насоздавать и распихать по формам юзерконтролы в режиме Thread Pool, а потом поменять на Thread per Object и откомпилировать, то юзерконтролы работают.

С четвертой стороны, неизвестно как это будет работать при наличии нескольких экземпляров проги.

Ну и с пятой стороны, можно все юзерконтролы скомпилировать в один ocx, которому начхать на theading model.
Лучший способ понять что-то самому — объяснить это другому.

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 07.09.2006 (Чт) 11:48

2Antonariy: спасибо за это небольшое исследование. через некоторое время после своего категоричного "Их можно использовать где угодно", вы достаточно подробно и по шагам описали свои ощущения в формате "что вижу - о том и пишу". также надеюсь, вам удалось почерпнуть много нового из моей ссылки про многопоточность.

и так еще раз.
1. UserControl находится в проекте ActiveX EXE. Создавать OCX нельзя.
2. Действительно, либо работают UserControl'ы либо создается объект в новом треде.
3. Несколько экземпляров проги здесь не при чем. Скорее несколько потоков в процессе.
4. Объект в новом треде не имеет интерфейса пользователя и не должен. Надо просто, чтобы он работал.

Т.о. чаща весов склоняется скорее к ответу нельзя. Никак.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 07.09.2006 (Чт) 11:58

главное, не понятно зачем вам это все нужно :?:
огласите задачу, которую вы пытаетесь решить, а мы ,возможно, предложим какое-нибудь решение :wink:

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 07.09.2006 (Чт) 12:01

что именно нужно ?
многопоточность или юзерконтролы ?
или отсутствие ocx ?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 07.09.2006 (Чт) 12:03

Да, больше напустил туману, чем просветил.
Лучший способ понять что-то самому — объяснить это другому.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 07.09.2006 (Чт) 12:18

NashRus
зачем тебе ocx внутри activex exe :?:

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 07.09.2006 (Чт) 12:27

в смысле зачем UserControl'ы ?
ну как, удобно. инкапсульруют пользовательский интерфейс и логику поведения иногда довольно сложную и все такое.
ну а выход здесь один. переделывать контролы в модули, формы, классы. просто хотелось бы этого конечно избежать.

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 07.09.2006 (Чт) 13:36

в общем вроде бы проблема решена успешно, т.е. можно.

смотреть здесь

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 07.09.2006 (Чт) 14:02

Все равно эту тему не догоняю, в чем проблема то?
И зачем нужны OCX в сервере ActiveX Exe :shock:

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 07.09.2006 (Чт) 15:14

я не догоняю, что ты не догоняешь.
интерфейс пользователя рисовать ?
и почему OCX ? я говорил про UserControl в проекте.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 07.09.2006 (Чт) 15:30

сделай их в отдельных проектах, скомпили как OCX-ы и подключай в свой проект ActiveX Exe. Для отладки существует групповой проект, вот ведь люди, никогда не ищут легких путей, а сразу лезут про многопоточность рассуждать 8)

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 07.09.2006 (Чт) 15:44

Konst_One, ты бы посмотрел ссылку, что дал NashRus. Мы ему не помошники, в тонкостях поведения ActiveX exe он разбирается больше.
Лучший способ понять что-то самому — объяснить это другому.

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 07.09.2006 (Чт) 15:49

Условия читал ?

1. UserControl находится в проекте ActiveX EXE. Создавать OCX нельзя.

а сразу лезут про многопоточность рассуждать


я не никуда не лезу. и не сразу, а добрых полтора десятка лет уже как в теме.
не позорьте Химки, молодой человек, я не спрашивал для чего существует групповой проект, впрочем как и то что такое многопоточность и как добавить юзерконтрол в проект.

очень жаль, считал этот форум самым профессиональным по ВБ из исходников, вбнета, релиба и рсдн.

в этом же топике ни одного поста по теме нет.
еще раз повторюсь: вопрос решен.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 07.09.2006 (Чт) 15:55

я бы не стал так категорично заявлять с вашей стороны, мальчик :evil:
я же предложил вам решение вашей проблемы другим способом, видимо вы не поняли меня правильно.

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 07.09.2006 (Чт) 16:10

то что я не девочка спорить, конечно, не буду.
вы предложили путь, который противоречит условиям задачи.
так что вашу позицию - действительно трудно понять.
закрашиваете звездочки флудом ?

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 09.09.2006 (Сб) 0:57

NashRus писал(а):Условия читал ?

1. UserControl находится в проекте ActiveX EXE. Создавать OCX нельзя.

Скажите, я правильно понимаю суть проблемы, что постановщик данного условия (возможно, заказчик) тем самым принудил вас к использованию решения-хака, которое, будучи впоследствии выкаченным в production environment, может (и, скорее всего, будет) иметь непредсказуемые последствия для всего его заказа?

Ибо если данная фича задизаблена в VB6, то скорее всего это было сделано не из маркетинговых соображений.

Вы не пробовали донести до него эту мысль?..

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 09.09.2006 (Сб) 13:25

Хороший вопрос и очень правильная постановка.
Но, как это часто бывает, дело было не в бабине :)
Хака там нет никакого, проблема была с головой исполнителя на тот момент времени, когда я постил этот вопрос. Была отключена проверка на тип старта в процедуре Main.
Так что с production environment все ок, по крайней мере, в этом моменте.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 133

    TopList