Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Все тот же ActiveX....


Nick Denry ©   (2005-08-07 20:50:00) 

Подскажите пожалуйста, как проверить, что ActiveX интерфейс (или контрол, например Windows media Player или Microsft Character Agent) существует в системе до попытки его создания?

С уважением, Nick Denry.


Nick Denry   (2005-08-11 21:58:00) [1]

Все же UP


Nick Denry   (2005-08-08 18:14:00) [2]

Я имел ввиду упрощения их использования, т.е. как в случае с Windows Media Player, т.е. после импорта ActiveX контрола и перетаскивания его на форму его уже ожно полноценно использовать (если он установлен в системе, но ведь в системе где такого контрола нет, мое приложение будет работать неверно).

В случае же с динамическим созданием ActiveX контрола, я, получается , выполню ткую же работу, как и создание его без использования VCL, ведь в таком случае, как я понял обработку событий необходимо будет делать так же самостоятельно?

Вообщем-то передо мной стоит такая задача:

Определить, установлен ли в системе контрол (ну и сам плеер) Windows Media серии 9, и если нет, то использовать как альтернативу TMediaPlayer;


just_me   (2005-08-08 16:13:00) [3]

в таком случае мне не очень понятно, что означает "упрощения создания ActiveX элементов"


Nick Denry   (2005-08-08 15:14:00) [4]

just_me,
Хм, спасибо за ответ, но я хотел использовать VCL для, собственно говоря, упрощения создания ActiveX элементов.

Я думаю, вы сталкивались с такой постановкой вопроса:

не проще ли в таком случае реализовать все это на Api при омощи интерфесов IOLeControl, IOleControlSite и т.д.

Поделитесь пожалуйста, если у вас есть какие либо соображения/документация по этому поводу.

(если можно на русском и в Delphi, а то MSDN переводить в таких объемах все-таки тяжко) :(


just_me   (2005-08-08 15:06:00) [5]

Тут - епоследний параграф:
http://www.compress.ru/Article.asp?id=3098


Nick Denry   (2005-08-08 15:03:00) [6]

Впрочем, контрол не меняет свой размер.

just_me, я не нашел ваш ответ по теме на форуме


Nick Denry   (2005-08-08 15:00:00) [7]

А почему ж тогда контрол на форма отобразился, т.е. :


wmp := TWindowsMediaPlayer.Create(self);
wmp.Parent := self;- новая строка кода
wmp.Top := 10;
wmp.Left := 10;
wmp.Width := 400;
wmp.Height := 400;
wmp.settings.volume := 100;
wmp.Visible := true;

wmp.URL := 'f:/vrock.mp3';


???


just_me   (2005-08-08 14:58:00) [8]

нет, не это


Nick Denry   (2005-08-08 14:30:00) [9]

К сожалению именно вашего ответа я не нашел, но верно-ли это:

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1111136854&n=8

(у меня заработало)?


just_me   (2005-08-08 14:15:00) [10]

ActiveX контролы динамически создаются более сложным образом - дополнительно нужно создать VCL-контейнер, куда он будет помещаться. Недавно отвечал на этот вопрос - поищите по форуму


Nick Denry   (2005-08-08 13:57:00) [11]

Да, я думаю, это то что надо, но  все=же объяснюсь несколько поднобнее.

Есть необходимость добавить в приложение Windwows Media Plaeyr 9,
который существует лишь в Win2000 и выше, причем в 2000ке, как известно он не установлен по умолчанию, так вот как мне проверить, что даный ActiveX элемент существует, а затем создаеть его экземпляр у себя, либо попросить пользователья этот самый элемент поставить?

Почему-то, если я перетаскиваю контрол на форму -то все создается и отображается, но если я создаю контрол след. образом:


...................
var
wmp : TWindowsMediaPlayer;
...............................\
(Допустим, на Form1.create):
wmp := TWindowsMediaPlayer.Create(self);
wmp.Top := 10;
wmp.Left := 10;
wmp.Width := 400;
wmp.Height := 400;
wmp.Visible := true;
wmp.URL := 'f:/vrock.mp3';


То по-чему-то контрол звук проигрывает, а на форме не отображается. Почему?


GanibalLector   (2005-08-07 23:20:00) [12]

CLSIDFromProgID ???


Наверх

Титульная страница Поиск, карта сайта Написать письмо