Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Проиграть 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. 
*)

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay