Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
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. windowssystem32macromedflash) 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
usesShockwaveFlashObjects_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 + 'macromedflash'; GetDir(0, AppDir);
// Get current directory //check whether the sw-flash ocx is already installed ifFileExists(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 + 'macromedflash'); {$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. *)