Cursos de Informática Grátis www.megainforcursos.com

12 de outubro de 2012

Rodando Arquivos do Flash no Delphi

Rodando Arquivos do Flash no Delphi

Primeiramente temos que instalar o controle ActiveX que trabalha com os arquivos flash, para isso acesse o menu "Component | Import ActiveX Control". 

Em seguida selecione o controle Shockwave Flash que está presente na lista. Este componente já é instalado junto com o Windows.

Clique no botão Install presente no canto inferior da tela. Na janela seguinte basta pressionar Ok. A terceira tela de confirmação será exibida e novamente pressione o botão Ok. Neste momento o Delphi irá fazer o restante automaticamente e quando terminar, lhe informará que o componente TShockwaveFlash foi instalado com sucesso.

Para finalizar salve e feche o projeto que foi aberto onde contém a instalação do seu novo controle ActiveX. Observe que agora ele já se encontra presente na palheta ActiveX (veja em seu Delphi).

OBSERVAÇÃO: Esse procedimento só irá funcionar se você tiver o Flash instalado em sua máquina.

Copie o arquivo swflash.ocx, que pode ser encontrado no diretório c:\windows\system\macromed\flash para o diretório do seu projeto. Copie também o arquivo "arquivo.swf" que você irá exibir em sua aplicação para o mesmo diretório.

Teremos agora que criar os arquivos de recursos para que o Delphi possa interpretar os códigos do arquivo flash (.swf). Para criar o primeiro, abra o bloco de notas e insira essas duas linhas de comando abaixo:

SHOCKWAVEFILE RCDATA arquivo.swf 
SHOCKWAVEOCX RCDATA swflash.ocx 

Onde arquivo é o nome de sua apresentação em flash (.swf). Salve o arquivo no mesmo diretório do seu projeto com o nome flash.rc. 

Para criar o segundo arquivo você deve abrir o Prompt do Ms-Dos e digitar a seguinte linha de comando:

"Brcc32 -r -32 c:\Diretorio\Flash.rc" 

Onde "c:\Diretorio\Flash.rc" é o diretório de seu projeto. Ao executar a linha de comando acima um arquivo de nome "flash.res" será criado no diretório de sua aplicação. Após isso nós podemos retornar ao Delphi.

Insira um componente TShockwaveFlash no form,redimensione de acordo com a sua necessidade, porém não preencha a propriedade "movie" , pois faremos isso por linha de programação.

A Unit utilizada pelo nosso componente é a ShockwaveFlashObjects_TLB, porém você não precisa se preocupar em colocá-la na sessão uses porque ela é incorporada automaticamente. 

No Evento OnCreate do formulário insira o seguinte código:

procedure TfrmMain.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);
if fileexists(SWFDir+'swflash.ocx')=false then 
begin 
{$i-}
MkDir(SystemDir+'\macromed'); 
MKDir(SystemDir+'\macromed\flash'); 
{$i+} 
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;
Winexec(PChar('regsvr32 /s'+SWFDir+'swflash.ocx'),SW_HIDE);
end; 
Fres := TResourceStream.Create(0,'SHOCKWAVEFILE',RT_RCDATA);
Ffile := TFileStream.Create('ramoscomedy.swf',fmCreate);
Try
Ffile.CopyFrom(Fres,Fres.Size);
Fres.Free;
Finally
Ffile.Free;
end;
ShockwaveFlash1.Movie := AppDir+'\ramoscomedy.swf';
end;

Explicando o código: 

Primeiramente declaramos as variáveis que serão necessárias adiante. As três primeiras linhas após o "begin" pegam o diretório de onde os arquivos estão e prenchem as devidas variáveis.

O primeiro "if" checa para ver se o "swflash.ocx" está instalado. Caso não esteja ele fará a instalação automaticamente, através do comando "regsrv32".

Caso "swflash.ocx" já exista ele não entra no if e vai direto para a parte de descompactação do arquivo Shockwave, onde ele obtém as informações pelo arquivo de recurso que está no diretório do seu projeto.

E por último associamos o arquivo flash (.swf) a propriedade movie do TShockwaveFlash. 

Agora nossa aplicação está pronta, basta salvá-la e compilá-la. Execute e veja um arquivo flash rodando no form.

No mais, agora deixo com você explorar os outros recursos deste componente, e que a Força esteja com você!

0 comentários:

Postar um comentário

 
Design by Wordpress Theme | Bloggerized by Free Blogger Templates | coupon codes