Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС
выпущен 4 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Проиграть Flash файл в приложении

Мой компьютер постоянно обыгрывает меня в шахматы. Зато я всегда побеждаю его в боксерском поединке!

To make use of SWF files in your Delphi application you should have the swf plugin installed then follow these steps:

{English}

In the Delphi IDE

- click on "Component", "Import ActiveX Control"
- chose "Shockwave Flash" and click on "install".

Now you have a TShockwaveFlash component in your IDE on the ActiveX tabsheet. Place the TShockwaveFlash Component onto your form, resize it as needed but for now do not assign a movie to it.

You will need to register the ocx file if it is not installed on the target computer. So you should have a resource file with

- the swflash.ocx and your Flash ( *.swf) file.
- Copy swflash.ocx (from i.e. windows\system32\macromed\flash) and your custom swf file to your project path.
- Create a textfile with a code like this:

SHOCKWAVEFILE RCDATA yourfile.swf
SHOCKWAVEOCX RCDATA swflash.ocx

(Where yourfile.swf is your swf-file)

- Save this file as flash.rc
- Goto Commandline, change to your project dir and enter the line:

"Brcc32 -r flash.rc"

- Now you have your new resource as flash.res file


 uses
   ShockwaveFlashObjects_TLB; // will be used automatically 
 
 implementation
 
 {$R *.DFM}
 {$R flash.res} // your new created resource 
 {...}
 
 procedure TForm1.FormCreate(Sender: TObject);
 var
   SystemDir: array[0..MAX_PATH] of Char;
   SWFDir, AppDir: string;
   Fres: TResourceStream;
   Ffile: TFileStream;
 begin
   GetSystemDirectory(@SystemDir, MAX_PATH);
   SWFDir := SystemDir + '\macromed\flash\';
   GetDir(0, AppDir); // Get current directory 
 
   //check whether the sw-flash ocx is already installed 
   if FileExists(SWFDir + 'swflash.ocx') = False then
   begin
     //create directories if needed and extract file from resource. 
     {$i-} //compiler directive to suppress i/o error messages 
     MkDir(SystemDir + '\macromed');
     MKDir(SystemDir + '\macromed\flash');
     {$i+}
     Fres := TResourceStream.Create(0, 'SHOCKWAVEOCX', RT_RCDATA);
     Ffile := TFileStream.Create(SWFDir + 'swflash.ocx', fmCreate);
     Ffile.CopyFrom(Fres, Fres.Size);
     Fres.Free;
     Ffile.Free;
 
     //register ocx (simple but useful) 
     WinExec(PChar('regsvr32 /s ' + SWFDir + 'swflash.ocx'), SW_HIDE);
   end;
   // extract ShockwaveFile from resource to application directory 
   Fres := TResourceStream.Create(0, 'SHOCKWAVEFILE', RT_RCDATA);
   Ffile := TFileStream.Create('flashmovie.swf', fmCreate);
   Ffile.CopyFrom(Fres, Fres.Size);
   Fres.Free;
   Ffile.Free;
 
   //Assign the extracted swf file to your TShockwaveFlash object 
   FlashMovie.Movie := AppDir + '\flashmovie.swf';
 end;
 
 (*
   If you dont want to have the popup menu displayed on right click
   you may chose menu property of TShockWave to false.
 *)
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS