|
Вопрос # 1 480/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Нужна помощь.
Мне нужно что б Flash(компонет) был на весь экран
Приложение: Переключить в обычный режим- Flash.Top:=0;
- Flash.Left:=0;
- Flash.Width:=form1.Width;
- flash.Height:=form1.Height;
- Flash.Align:=alClient;
-
- Flash.Play;
- Flash.Playing:=true;
Примечание #1 (6 апреля 2008, 11:57): Форма изначально идёт на весь экран.
 |
Вопрос задал: T$imokhin (статус: 1-ый класс)
Вопрос отправлен: 6 апреля 2008, 11:30
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Dron
Здравствуйте, T$imokhin!
Проще всего развернуть саму форму на весь экран и тогда анимация растянется соответствующим образом:
Form1.BorderStyle:=bsNone;
Form1.WindowState:=wsMaximized;
P.S. Выставляя Align = alClient не нужно выставлять Left, Top, Width и Height - это будет делаться автоматически.
 |
Ответ отправил: Dron (статус: Студент)
Время отправки: 6 апреля 2008, 11:37
Оценка за ответ: 4
Комментарий к оценке: Сам пробовал, Не получается.
|
Мини-форум вопроса
Всего сообщений: 6; последнее сообщение — 6 сентября 2008, 21:47; участников в обсуждении: 3.
|
Dron (статус: Студент), 6 апреля 2008, 12:06 [#1]:
Возможно, дело в самом ролике. При его создании можно сделать так, чтобы он не масштабировался по размеру окна, а оставался фиксированного размера. Попробуйте загрузить другие ролики и посмотреть на результат. Если проблема со всеми, тогда стоит что-то делать, а иначе вряд ли что-то удастся.
С уважением.
|
|
T$imokhin (статус: 1-ый класс), 6 апреля 2008, 14:09 [#2]:
//Я давно мучаюсь над этим вопросом. Раньше я как-то без этого обходился. Но сейчас это невозможно.//
Пробывал я на разный роликах. Никакой не хочет.
-------
"Вечна жыві і квітней Беларусь"
|
|
Dron (статус: Студент), 6 апреля 2008, 14:17 [#3]:
А какой компонент, кстати, используете?
С уважением.
|
|
T$imokhin (статус: 1-ый класс), 7 апреля 2008, 13:30 [#4]:
ShockwaveFlash
-------
"Вечна жыві і квітней Беларусь"
|
|
Евгений Eklmn (статус: Посетитель), 6 сентября 2008, 21:38 [#5]:
Может позновато, но все же. Порылся в нете. Один умный человек вот что предлагает:
Создаем заголовачный файл:
============================================================================
unit atl;
interface
uses Windows, ActiveX;
function AtlAxWinInit:BOOL;stdcall;
function AtlAxGetHost(Handle:HWND;out unk:IUnknown):HResult;stdcall;
function AtlAxCreateControlEx(lpszName WideChar;Handle:HWND;pStream:IStream;out
ppUnkContainer:IUnknown;out
ppUnkControl:IUnknown;iidSink:TGUID;punkSink:IUnknown):HResult;stdcall;
function AtlAxAttachControl(unk:IUnknown;Handle:HWND;out
ppUnkContainer:IUnknown):HResult;stdcall;
function AtlAxGetControl(Handle:HWND;out unk Unknown):HResult;stdcall;
implementation
const atl_library = 'atl.dll';
function AtlAxWinInit; external atl_library name 'AtlAxWinInit';
function AtlAxGetHost; external atl_library name 'AtlAxGetHost';
function AtlAxGetControl; external atl_library name 'AtlAxGetControl';
function AtlAxCreateControlEx; external atl_library name 'AtlAxCreateControlEx';
function AtlAxAttachControl; external atl_library name 'AtlAxAttachControl';
end.
Он импортирует функции из библиотеки, которая входит в состав Windows.
Объявляем глобальные переменные:
...
u:IUnknown;
swf:IShockwaveFlash;
...
Далее обработчик (FlashPanel - панель на которой нужно проиграть видео).
procedure TForm1.FormCreate(Sender: TObject);
begin
AtlAxWinInit;
CoCreateInstance(CLASS_ShockwaveFlash,nil,CLSCTX_ALL,IShockwaveFlash,swf);
AtlAxAttachControl(swf,FlashPanel.Handle,u);
swf.WMode:='transparent';
end;
Работаем с объектом swf как с ShockwaveFlash, но не забываем чистить за собой.
procedure TForm1.FormDestroy(Sender: TObject);
begin
swf:=nil;
CoUninitialize;
end;
Генерация случайных чисел - слишком важный вопрос, чтобы оставлять его на волю случая. (Роберт Ковзю, Окриджская лаборатория)
|
|
Евгений Eklmn (статус: Посетитель), 6 сентября 2008, 21:47 [#6]:
Забыл упомянуть, что кроме atl нужно подключить модули Activex, ShockwaveFlashObjects_TLB.
Генерация случайных чисел - слишком важный вопрос, чтобы оставлять его на волю случая. (Роберт Ковзю, Окриджская лаборатория)
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|