Existe um controle activeX que permite a integração de arquivos “swf “no Delphi. Vamos instalar esse controle activeX para prosseguirmos com nosso exemplo.
Em seguida, clique no botão “Install” situado no canto inferior da tela. Na janela seguinte, cujo o título é “Install Component”, vc deve selecionar em que package vc deseja adicionar esse novo componente.
Vc pode escolher uma das packages já existentes, para isso, na aba cujo o título é “Into existing package”, selecione uma das listadas na combo desta tela e click “Ok”.

Ou, para criar uma nova package, na aba “ into new Package”, em Package file name, defina um path e nome de arquivo para criação da package.
Confirme, a partir daí o Delphi irá fazer o restante automaticamente e quando terminar, lhe informará que o componente TShockwaveFlash foi instalado com sucesso. Observe agora que o esse componente recém instalado se encontra presente na palheta ActiveX.


"Criando um arquivo “.Res"
Crie um diretório para que possamos construir o arquivo de recurso (“.res”). Esse arquivo usaremos para poder carregar o flash para a plicação Delphi, sugiro: “C:\ExemploFlashDelphi”.
Copie o arquivo swflash.ocx, que pode ser encontrado no diretório “c:\windows\system\macromed\flash”, ou “C:\WINNT\system32\Macromed\Flash” para o diretório criado anteriormente.
Copie também o arquivo compilado flash “.swf" que você irá exibir em sua aplicação Delphi para o mesmo diretório.
Agora vamos criar primeiro o arquivo “.rc”, abra o bloco de notas e insira essas duas linhas de comando abaixo:
SHOCKWAVEFILE RCDATA arquivo.swf
SHOCKWAVEOCX RCDATA swflash.ocx

O “arquivo.swf” é o nome do seu compilado flash (.swf). Salve esse txt onde acabamos referenciar “SHOCKWAVEFILE” e “SHOCKWAVEOCX” no mesmo diretório que criamos anteriormente e colocamos o “ocx” (“C:\ExemploFlashDelphi”) com o nome “FlashZn.rc” (o que importa aqui é a extenção do arquivo, “.rc”). Feito isso vamos abrir o Prompt do Ms-Dos e digitar a seguinte linha de comando:
"Brcc32 -r -32 C:\ExemploFlashDelphi \ FlashZn.rc"
Execute a linha de comando acima um para criar o arquivo “FlashZn.res".


Construindo um exemplo no Delphi
1 - Inicie uma nova aplicação no Delphi: Menu File ► New ► Application.
2 - Adicione no Form1 um ShockwaveFlash (Palheta ActiveX), set a propriedade align = alClient. Pressione F12 para exibir a página de código. Nela, procure a palavra reservada “implementation” abaixo da diretiva de compliação “{$R *.dfm}” adicione “{$R FlashZn.res}”.
3 – Na seção private do Form1 digite conforme o trecho de código abaixo a procedure CarregaFlash, em seguida pressione “Ctrl+Shift+C”:
type
TForm1 = class(TForm)
ShockwaveFlash1: TShockwaveFlash;
private
procedure CarregaFlash;
public
end;
Codifique o corpo da procedure conforme exemplo abaixo:
- procedure TForm1.CarregaFlash;
- const
- AZnFlash = 'zn1.swf';
- var
- ZnAuxDir: String;
- MySysDir : array[0..MAX_PATH] of Char;
- FileSWFPath, AppDir: String;
- AFileRes: TResourceStream;
- AMyFile: TFileStream;
- begin
- GetSystemDirectory(@MySysDir,MAX_PATH);
- FileSWFPath := MySysDir+'\macromed\flash\';
- GetDir(0,AppDir);
-
- if not FileExists(FileSWFPath+'swflash.ocx') then
- begin
- ZnAuxDir := IncludeTrailingPathDelimiter(MySysDir)+'macromed');
-
- if not DirectoryExists(ZnAuxDir) then
- if not CreateDir(ZnAuxDir) then
- raise Exception.Create('Não foi possível criar o diretório!');
-
- CreateDir(IncludeTrailingPathDelimiter(ZnAuxDir) + 'flash');
-
- AFileRes := TResourceStream.Create(0, 'SHOCKWAVEOCX', RT_RCDATA);
- AMyFile := TFileStream.Create(FileSWFPath + 'swflash.ocx', fmCreate);
- try
- AMyFile.CopyFrom(AFileRes, AFileRes.Size);
- finally
- AFileRes.Free;
- AMyFile.Free;
- end;
-
- Winexec(PChar('regsvr32 /s ' + FileSWFPath + 'swflash.ocx'), SW_HIDE);
- end;
-
- AFileRes := TResourceStream.Create(0, 'SHOCKWAVEFILE',RT_RCDATA);
- AMyFile := TFileStream.Create(AZnFlash, fmCreate);
- try
- AMyFile.CopyFrom(AFileRes, AFileRes.Size);
- finally
- AFileRes.Free;
- AMyFile.Free;
- end;
-
- ShockwaveFlash1.Movie := IncludeTrailingPathDelimiter(AppDir) + AZnFlash;
- end;
No Evento OnCreate do Form1 codifique:
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- CarregaFlash;
- end;
OBS: Todos os arquivos devem estar no mesmo diretório do seu projeto Delphi (projetc1.dpr) para compilar o seu executável. O ".res", o ".ocx" e o arquivo ".swf" também.