Работа с контролом ActiveX

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

Работа с контролом ActiveX

Сообщение Dumm » 27.05.2012 (Вс) 16:49

Доброго дня (или ночи, в зависимости от времени бдения просматривающего). Есть такая непонятная проблема. Написан контрол, имеющий в своем составе проигрывание звука. Проигрывается звук при помощи стандартного MMControl. Работа с ним такова: при наведении курсора мыши на контрол, размещенный на форме, раздается звук (MMControl получает команду "Play"), при убирании курсора с контрола звуковая дорожка перематывается на начало (MMControl получает команду "Prev"). Если контрол на форме один, то все работает как часы, а вот если их несколько, то данное свойство срабатывает только для одного, причем для последнего контрола. И вот не пойму почему так.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Работа с контролом ActiveX

Сообщение Хакер » 27.05.2012 (Вс) 17:13

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

Ну разве что дать совет проверить, могут ли вообще два MM-контрола в твоей конфигурации (машина+софт) проигрывать звук одновременно. Если могут, то проблема однозначно следствие твоей ошибки в умении продумывать логику работы приложения.

И вообще использования MMC в подобных случаях — стрельба из пушки по воробьям.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Dumm
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 27.05.2012 (Вс) 16:39

Работа с контролом ActiveX

Сообщение Dumm » 27.05.2012 (Вс) 19:11

Мне не совсем понятно, как вообще такое может быть. Ведь сколько бы ни было экземпляров на форме, вызывают они один и тот же контрол. Он (контрол) в свою очередь ни коим образом не знает кто его вызывает и сколько раз. И программный код он свой отрабатывает для всех вызовов одинаково. Почему все свойства срабатывают и лишь проигрывание звука срабатывает только для одного экземпляра?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Работа с контролом ActiveX

Сообщение Хакер » 27.05.2012 (Вс) 19:17

Не понял.
MMControl лежит внутри UserControl-а?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Dumm
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 27.05.2012 (Вс) 16:39

Re: Работа с контролом ActiveX

Сообщение Dumm » 27.05.2012 (Вс) 19:25

Да. То есть, он "один для всех".

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Работа с контролом ActiveX

Сообщение Хакер » 27.05.2012 (Вс) 19:41

Ты противоречишь сам себе.
Если MMControl лежит внутри UserControl-а, то при существовании 10 экземпляров UserControl-а на форуме будет 10 MMControl-ов по одному в каждом UserControl-е.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Dumm
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 27.05.2012 (Вс) 16:39

Re: Работа с контролом ActiveX

Сообщение Dumm » 27.05.2012 (Вс) 20:17

Все верно. Десять экземпляров одного и того же объекта MMC с одним и тем же программным кодом. Вот и вопрос, почему не для всех экземпляров он отрабатывает одинаково?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Работа с контролом ActiveX

Сообщение Хакер » 27.05.2012 (Вс) 21:10

Кривой код.
Гадать тут никто не будет.
Если проект не секретен, выкладывай всё, что есть.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Dumm
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 27.05.2012 (Вс) 16:39

Re: Работа с контролом ActiveX

Сообщение Dumm » 30.05.2012 (Ср) 20:09

Проблема решена. Не работает конструкция "Open", "Play" - "Prev", а работает конструкция "Open", "Play" - "Close". Не понятно почему, ведь для одного экземпляра контрола и первый вариант отлично работает, но да это уже не так важно.


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

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

Сейчас этот форум просматривают: Google-бот и гости: 66

    TopList