Arquivo RC

Delphi

29/10/2005

Olá

Em meus projetos nunca usei arquivos de recursos, mas agora estou precisando e surgiu um problema. Coloco neste arquivo algumas imagens, *.swf e etc. Porém quando executo o programa, o arquivo swf é estraído para o diretório da aplicação. Pergunto, ele não teria que ficar quietinho dentro do arquivo de recursos ? Como posso fazer para que estes arquivos não sejam salvos no suposto diretório ?

Obrigado
Sanses


Sanses

Sanses

Curtidas 0

Respostas

Sanses

Sanses

29/10/2005

UP :D

é que estou precisando mesmo. Neste projeto que estou trabalhando, terei vários arquivos *.swf (flash) que o cliente não quer que sejam utilizados fora do aplicativo. Uma outra duvida que me surgiu é : como faço para bloquear o clique direito do mouse na tela do flash? consigo apenas para o form, para o compoente que mostra o swf não.

Obrigado
Sanses


GOSTEI 0
Sanses

Sanses

29/10/2005

UP :(


GOSTEI 0
Massuda

Massuda

29/10/2005

Não sei como funciona o tocador de Flash, mas se os arquivos estão sendo extraídos é provavelmente porque algum código no seu programa (ou no tocador) faz isso.


GOSTEI 0
Sanses

Sanses

29/10/2005

olá

Massuda, o compoente é o activeX ShockwaveFlash e o código que estou usando é o do artigo do guinther. Segue abaixo:

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


Ffile.free finaliza o stream e grava no diretório, mas não consegui pegar o arquivo swf do arquivo de recursos e coloca-lo direto na propriedade movie do componente ShockwaveFlash sem ter que extrai-lo.

Obrigado.
Sanses


GOSTEI 0
POSTAR