Flash - flash com delphi |
Top Previous Next |
|
Reproduzindo arquivos Flash com o Delphi
Neste artigo você aprenderá a reproduzir arquivos Flash (.swf) em sua aplicação Delphi e assim incrementar seus softwares. O modo que faremos isso será utilizando o controle de ActiveX presente no Delphi.
1. Instalando o componente para Flash
- Menu Component / Import ActiveX Control - Procure na lista pelo controle do Flash. (Shockwave Flash 1.0) - se ele pedir um OCX, este é swflash.ocx que está em Windows\System\Macromed\Flash - Será criado um componente que vai te permitir incorporar uma apresentação do Flash em um Form do Delphi ( Paleta: ActiveX, o nome deve ser TShockwaveFlash )
2. Ponha este componente no FORM, e use os métodos:
ShockwaveFlash1.Movie := 'C:\Nome_do_arquivo_de_flash'; ShockwaveFlash1.Play;
3. Caso queira uma coisa profissional. incorporte num RC (dentro do EXE) o OCX do flash (caso seu usuário não tenha instalado) E também coloque o arquivo swf... veja:
3.1. copie o swflash.ocx e seu arquivo .swf para uma pasta e crie um txt com o conteúdo:
SHOCKWAVEFILE RCDATA mussum.swf SHOCKWAVEOCX RCDATA swflash.ocx
salve como flash.rc
3.2. usando o BRCC32 compile-o assim: "Brcc32 -r -32 c:\Diretorio\Flash.rc" isto criará o ".res"
3.3. agora no seu projeto: {$R *.dfm} {$R Flash.res} isto coloca o RES junto com o executável
3.4. basta "desvomitar" os arquivos no CREATE do seu form principal:
procedure TForm1.FormCreate(Sender: TObject); var SystemDir : array[0..MAX_PATH] of Char; SWFDir, AppDir: string; Fres : TResourceStream; Ffile : TFileStream; begin // captura a pasta System do windows GetSystemDirectory(@SystemDir,MAX_PATH); SWFDir := SystemDir + '\macromed\flash\'; // adiciona a pasta padrão do Flash GetDir(0,AppDir); // não tem flash instalado ainda? if not FileExists(SWFDir + 'swflash.ocx') then begin // cria pasta ForceDirectories(SystemDir + '\macromed\flash'); // extrai o recurso da OCX Fres := TResourceStream.Create(0, 'SHOCKWAVEOCX', RT_RCDATA); Ffile := TFileStream.Create(SWFDir + 'swflash.ocx', fmCreate); try Ffile.CopyFrom(Fres,Fres.Size); finally Fres.Free; Ffile.Free; end; // este "instala" o flash no Windows Winexec(PChar('regsvr32 /s' + SWFDir + 'swflash.ocx'), SW_HIDE); end; // se for a 1ª vez que o programa é executado, ele extrai a animacao // em flash: if not FileExists(AppDir + 'mussum.swf') then begin Fres := TResourceStream.Create(0,'SHOCKWAVEFILE',RT_RCDATA); Ffile := TFileStream.Create('mussum.swf',fmCreate); try Ffile.CopyFrom(Fres,Fres.Size); Fres.Free; finally Ffile.Free; end; end; // associa o arquivo. ShockwaveFlash1.Movie := AppDir + '\mussum.swf'; // se não rodar imediatamente use ShockwaveFlash1.Play end;
// Legal né?
|