Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2007.07.29;
Скачать: [xml.tar.bz2];

Вниз

Проиграть видео из 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.046 c
2-1183457683
kilya
2007-07-03 14:14
2007.07.29
ошибка Circular unit reference


2-1183627061
dwery
2007-07-05 13:17
2007.07.29
Как обновить запрос?


15-1183013786
Ega23
2007-06-28 10:56
2007.07.29
Где скачать JediVCL?


11-1166279345
NeeDiGeo
2006-12-16 17:29
2007.07.29
Добавление формы в уже существующий проект KOL_MCK


1-1179846066
nickmas
2007-05-22 19:01
2007.07.29
MDI-окна





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский