Fórum Animação Flash em Delphi 5 - URGENTE #190273

22/10/2003

0

Olá pessoal,

Encontrei no Clube Delphi o seguinte:


---------------------------------------------------------------------------------------------
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.

Primeiramente temos que instalar o controle ActiveX que trabalha com os arquivos flash, para isso acesse o menu ´Component | Import ActiveX Control´. Veja melhor na figura abaixo.

Em seguida selecione o controle Shockwave Flash que está presente na lista mostrada na figura abaixo. 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 como mostra a figura abaixo.

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.

Não podemos esquecer de configurar a seção implementation:

implementation
{$R *.dfm}
{$R flash.res}

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(´banneranuncio.swf´,fmCreate);
Try
Ffile.CopyFrom(Fres,Fres.Size);
Fres.Free;
Finally
Ffile.Free;
end;
ShockwaveFlash1.Movie := AppDir+´\banneranuncio.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.

---------------------------------------------------------------------------------------------

Eu segui tudo direitinho, o problema é q está dando o seguinte erro:

---------------------------------------------------------------------------------------------
Resourse SHOCKWAVEFILE not found
---------------------------------------------------------------------------------------------

Quando clico em OK o formulário aparece, mas não exibe a animação.

O q está faltando?

Grato,

Ilano.


Ilanocf

Ilanocf

Responder

Post mais votado

14/11/2017

Eu também tenho um problema semelhante
GoMovies

James

James
Responder

Gostei + 1

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar