Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.29;
Скачать: CL | DM;

Вниз

Проиграть видео из Dll.   Найти похожие ветки 

 
parasolka ©   (2007-05-23 11:03) [0]

Здравствуйте, уважаемые мастера. Проблема такая - есть 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 формы. Однако, форма открывается, но видео не проигрывается. В чем проблема?


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

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


 
parasolka ©   (2007-05-23 11:18) [2]

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


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


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


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

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


 
Reindeer Moss Eater ©   (2007-05-23 11:34) [4]

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

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


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

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


 
parasolka ©   (2007-05-23 11:36) [6]


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


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


 
Reindeer Moss Eater ©   (2007-05-23 11:36) [7]

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


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

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


 
parasolka ©   (2007-05-23 11:44) [9]

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


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


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


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


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


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

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


 
parasolka ©   (2007-05-23 11:49) [12]


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


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

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


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


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


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


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


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


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


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


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


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


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


 
parasolka ©   (2007-05-23 11:57) [15]

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

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



Страницы: 1 вся ветка

Текущий архив: 2007.07.29;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.02 c
15-1182701335
koha
2007-06-24 20:08
2007.07.29
Ищу хорошую инфу по компоненту TChart


2-1183376845
wesaaaa
2007-07-02 15:47
2007.07.29
Какая есть компонент-кнопка


2-1183697767
delphino
2007-07-06 08:56
2007.07.29
Не могу найти ошибку в выражении


15-1182947588
TruePunk
2007-06-27 16:33
2007.07.29
wap ресурсы


2-1183344188
Grademax
2007-07-02 06:43
2007.07.29
Как отследить "выключение системы"?