Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 480

/ вопрос открыт /

Приветствую, уважаемые эксперты!
Нужна помощь.
Мне нужно что б Flash(компонет) был на весь экран

Приложение:
  1. Flash.Top:=0;
  2. Flash.Left:=0;
  3. Flash.Width:=form1.Width;
  4. flash.Height:=form1.Height;
  5. Flash.Align:=alClient;
  6.  
  7. Flash.Play;
  8. Flash.Playing:=true;


Примечание #1 (6 апреля 2008, 11:57):
Форма изначально идёт на весь экран.

T$imokhin Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: 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

Dron (статус: Студент), 6 апреля 2008, 12:06 [#1]:

Возможно, дело в самом ролике. При его создании можно сделать так, чтобы он не масштабировался по размеру окна, а оставался фиксированного размера. Попробуйте загрузить другие ролики и посмотреть на результат. Если проблема со всеми, тогда стоит что-то делать, а иначе вряд ли что-то удастся.
С уважением.
T$imokhin

T$imokhin (статус: 1-ый класс), 6 апреля 2008, 14:09 [#2]:

//Я давно мучаюсь над этим вопросом. Раньше я как-то без этого обходился. Но сейчас это невозможно.//
Пробывал я на разный роликах. Никакой не хочет.
-------
"Вечна жыві і квітней Беларусь"
Dron

Dron (статус: Студент), 6 апреля 2008, 14:17 [#3]:

А какой компонент, кстати, используете?
С уважением.
T$imokhin

T$imokhin (статус: 1-ый класс), 7 апреля 2008, 13:30 [#4]:

ShockwaveFlash
-------
"Вечна жыві і квітней Беларусь"
Евгений Eklmn

Евгений 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:PWideChar;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:PUnknown):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

Евгений Eklmn (статус: Посетитель), 6 сентября 2008, 21:47 [#6]:

Забыл упомянуть, что кроме atl нужно подключить модули Activex, ShockwaveFlashObjects_TLB.
Генерация случайных чисел - слишком важный вопрос, чтобы оставлять его на волю случая. (Роберт Ковзю, Окриджская лаборатория)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:26
Выполнено за 0.02 сек.