Главная страница
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.023 c
2-1183383561
авыф
2007-07-02 17:39
2007.07.29
MS SQL 2005


3-1177344935
Juice
2007-04-23 20:15
2007.07.29
Результат ХП как рез. поле запроса


8-1161870623
Gamer
2006-10-26 17:50
2007.07.29
Рисование графиков


6-1167055129
Romas81
2006-12-25 16:58
2007.07.29
cookie и кэша браузера


15-1183523848
шпыён
2007-07-04 08:37
2007.07.29
Вопрос к тем кто в Америке, Зап. Европе и пр.