Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Работа с контролом ActiveX


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

Автор: Akina 14.5.2012, 20:49
Это независимые контролы или массив контролов?
А инстансы контролов используют одну копию MMControl или каждый свою?

Автор: Dumm 14.5.2012, 21:36
И так и так пробовал. В обоих вариантах это свойство срабатывает только для одного элемента. Инстансы контролов используют одну и ту же копию MMControl.

Автор: Akina 14.5.2012, 21:59
Цитата(Dumm @  14.5.2012,  22:36 Найти цитируемый пост)
Инстансы контролов используют одну и ту же копию MMControl. 

Было бы неплохо, если бы у каждого был свой. Или наоборот - MMControl должен быть самостоятельным, с твоим контролом не связанным.

Автор: Dumm 14.5.2012, 22:20
Но ведь код контрола идентичен для всех его вызовов, по сути это клоны. Почему работа тем не менее отличается? И второе, как сделать независимый от контрола элемент, в данном случае MMControl? Или как сделать разные для всех вызовов элементы в контроле, если он (контрол) ни коим образом не знает кто его вызывает и сколько раз?

Автор: Akina 15.5.2012, 07:59
Выложите почищенный от ненужных деталей проект. Так будет проще...

Автор: Dumm 15.5.2012, 18:15
Пожалуйста, код контрола - Label.vbp, код тестовой программы - Project1.vbp

Автор: Dumm 16.5.2012, 17:34
Могу я поинтересоваться у общественности, как идут дела? Скачивания проблемного примера есть, а комментариев нет. Если ни у кого нет никаких предложений (рад буду даже самым бредовым), думаю, придется отказаться от звука в этом контроле.

Автор: Akina 16.5.2012, 17:44
Dumm, проект запустить не удаётся. Ни один, ни другой.
Попробуйте сами его открыть на машине, где есть студия, но не было вашего проекта...

Автор: Dumm 16.5.2012, 17:58
Вот как? Не думал. Попробую на другом компе.

Автор: Dumm 18.5.2012, 21:36
Действительно, что-то непонятное было с проектами. Что-то дикое и необузданное. Надеюсь, теперь они будут запускаться. Буду признателен, если посмотрите.

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)