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

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

Проиграть видео из Dll. [D7, WinXP]


parasolka ©   (2007-05-23 11:03:00) 

Здравствуйте, уважаемые мастера. Проблема такая - есть dll, из которой необходимо вызвать форму, на которой будет проигрываться видео файл avi. Для этого использую TMediaPlayer. Код вызова формы - такой:

procedure ShowForm (AHandle: THandle; Filename: String);
begin
 Application.Handle:=AHandle;
 frmVideo:=TfrmVideo.Create(Application);
 with frmVideo.MPlayer do begin
   FileName:=Filename;
   Display:=frmVideo;
   Open;
 end;
 frmVideo.Show;
end;


Плейер запускаю по событию OnShow формы. Однако, форма открывается, но видео не проигрывается. В чем проблема?


parasolka   (2007-05-23 11:57:00) [1]

Я и имел в виду BCB.

Уже заработало.


Сергей М.   (2007-05-23 11:55:00) [2]


> как я потом ее прилинкую


Прилинковать можно все что угодно к чему угодно, но работать этоткод в описанных условиях (хост-приложение не является Delphi/BCB-приложением) не будет.


Сергей М.   (2007-05-23 11:53:00) [3]


> AnsiString что, не подходит?


Откуда в C++ взялся AnsiString ? Этот тип известен лишь Делфи и BCB.


> До С еще не дошло


И не дойдет при таком подходе.


> В Delphi не работает. Спрашиваю - ПОЧЕМУ?


Потому что см. [9]


parasolka   (2007-05-23 11:49:00) [4]


> Ну и как эта программа, по-твоему, должна умудриться передать
> в кач-ве 2-го параметра данные типа String ?


AnsiString что, не подходит?

И повторяю еще раз. До С еще не дошло. В Delphi не работает. Спрашиваю - ПОЧЕМУ? Зачем рассуждать на тему того как я потом ее прилинкую.


Сергей М.   (2007-05-23 11:45:00) [5]


> другая программа не моя. Она вообще на C++ написана


Ну и как эта программа, по-твоему, должна умудриться передать в кач-ве 2-го параметра данные типа String ?


clickmaker   (2007-05-23 11:45:00) [6]


> Используемое устройство MCI не поддерживает

ну и причем тут тогда формы и DLL?


parasolka   (2007-05-23 11:44:00) [7]

Дело в том, что до подключения к C еще не дошло. Вызываю из тестовой программки на Delphi. Кстати, посмотрел свойство ErrorMessage компонента MediaPlayer после вызова метода Play - "Используемое устройство MCI не поддерживает указанную команду".


clickmaker   (2007-05-23 11:39:00) [8]

скорей всего, проблема в обработке сообщений (вернее, в их "необработке").
Тогда из программы на Си нужно в простое (в конце цикла GetMessage - DispatchMessage) дергать некий метод в DLL или слать сообщение, например WM_IDLE, форме в DLL.
А в обработчике этого сообщения вызывать Application.HandleMessage;


parasolka   (2007-05-23 11:36:00) [9]


> А зачем? Что, нет более прямолинейных способов?


Уже переделал. Запускаю в той же процедуре сразу после Open. Эффект тот же.


Reindeer Moss Eater   (2007-05-23 11:36:00) [10]

Вот пусть и пользуется функциями а не событиями кого-то там


parasolka   (2007-05-23 11:35:00) [11]

Потому что другая программа не моя. Она вообще на C++ написана. Моя задача дать dll автору той программы, чтобы он ее прилинковал и пользовался ее функциями.


Reindeer Moss Eater   (2007-05-23 11:34:00) [12]

Плейер запускаю по событию OnShow формы

А зачем? Что, нет более прямолинейных способов?


Сергей М.   (2007-05-23 11:30:00) [13]


> Потому что ее надо встраивать в другую программу


Что мешает подключить к проектам "этой программы" и "другой программы" один и тот же юнит с упомянутой формой ?

Почему dll, а не bpl ?


parasolka   (2007-05-23 11:18:00) [14]

Потому что ее надо встраивать в другую программу, из которой можно будет потом вызвать эту форму и проиграть на ней видео. Скажем так - техническое задание.


Сергей М.   (2007-05-23 11:15:00) [15]

Зачем вообщеты хранишь форму в dll ?
Объясни вразумительно, с аргументами ..


Наверх

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