Incluir Arquivo Word no Executavel

Delphi

24/05/2006

Como faço para incluir um arquivo Word , Excel no executável do meu aplicativo. Gostaria de distribuir só um arquivo para mweu cliente , e quando necessário , salvar o arquivo em disco , usá-lo e depois apagar do disco. É possível usar como um resource , stream etc...
Como faço. Alguém já passou por isto ?
Agradeço antecipadamente.


Emerson Azevedo

Emerson Azevedo

Curtidas 0

Respostas

Adriano Santos

Adriano Santos

24/05/2006

[quote:c337ae295e=´Emerson Manuel Azevedo´]Como faço para incluir um arquivo Word , Excel no executável do meu aplicativo. Gostaria de distribuir só um arquivo para mweu cliente , e quando necessário , salvar o arquivo em disco , usá-lo e depois apagar do disco. É possível usar como um resource , stream etc...
Como faço. Alguém já passou por isto ?
Agradeço antecipadamente.[/quote:c337ae295e]

[url=http://forum.devmedia.com.br/viewtopic.php?t=65476&highlight=resource&sid=66fd0ccfc1e221626fbbbd6def056643]Neste tópico[/url] tem uma explicação.


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

24/05/2006

Colega,

Minha sugestão é criar o arquivo no momento que for necessário. O Delphi possui uma paleta de recursos (servers) que simplifica esta implementação. Basicamente, pode utilizar TypeText para ´descarregar´ o texto desejado.


GOSTEI 0
Emerson Azevedo

Emerson Azevedo

24/05/2006

Boa Dica Adriano , mas eu nunca criei um recurso ou arquivo RES, como faço? Tem algum Tópico com este tema ?


GOSTEI 0
Adriano Santos

Adriano Santos

24/05/2006

[quote:451ea4e0e0=´Emerson Manuel Azevedo´]Boa Dica Adriano , mas eu nunca criei um recurso ou arquivo RES, como faço? Tem algum Tópico com este tema ?[/quote:451ea4e0e0]

Cara, é simples.
Vc cria um arquivo com a extensão .RC no bloco de notas mesmo. Lá vc vai especificar quais arquivos precisam ser adicionados ao executável, mais ou menos assim:

[quote:451ea4e0e0=´Arquivo de Recursos´]
ARQUIVO1 RCDATA NOTEPAD.EXE
ARQUIVO2 RCDATA CALC.EXE
ARQUIVO3 RCDATA C:\ARQUIVOS\MEU_ARQUIVO.DOC
[/quote:451ea4e0e0]

Obs: Você precisa colocar os arquivos na mesma pasta onde o .RC será salvo ou especificar o caminho de cada um deles como fiz no MEU_ARQUIVO.DOC
Depois disso você precisa compilar o arquivo .RC com o BRCC32.EXE para que ele se transforme em .RES e ser incorporado ao Executável.

O utilitario brcc32.exe encontra-se no diretório Bin do Delphi e é rodado no DOS via linha de comando, por exemplo:

[quote:451ea4e0e0=´Linha de comando para compilação´]
C:\Arquivos de Programas\Borland\DelphiXX\Bin\brcc32 -r -32 C:\SEU_PROJETO\ARQUIVO.RC
[/quote:451ea4e0e0]

Como disse um arquivo .RES será criado. Daí basta fazer referência a ele em seu projeto.
Inclua a diretiva de compilação:

{$R MEU_RECURSO.RES}


Pra extrair/usar os dados do arquivo de recursos lembre-se do nome do recurso que foi criado. Ex:

procedure TForm1.FormCreate(Sender: TObject);
    procedure CopiarEExecutar;
    var
      DirDestino : String;
      NomeArquivo: String;
      Fres : TResourceStream;
      fFile : TFileStream;
    begin
      DirDestino := ´C:\Temp\´;
      NomeArquivo := ´MeuExecutavel.exe´;
      {Cria uma instância de TResourceStream para manipulá-lo mais tarde}
      Fres := TResourceStream.Create(0,´ARQUIVO1´,RT_RCDATA);
      {Cria em memória o arquivo gravado no Resource}
      fFile := TFileStream.Create(DirDestino + NomeArquivo,fmCreate);
      try
        {Copia do Resource}
        Ffile.CopyFrom(Fres,Fres.Size);
        MessageDlg(´O Arquivo: ´ + NomeArquivo + ´ foi copiado com êxito e será executado.´,mtError,[mbOK],0);
        WinExec(PChar(DirDestino + NomeArquivo), SW_SHOWNORMAL);
      finally
        {Libera as variáveis necessárias.}
        Fres.Free;
        Ffile.Free;
      end;
    end;
begin
  CopiarEExecutar;
end;



Aqui eu estou extraindo o arquivo que foi registrado no .RES como ARQUIVO1.

Espero tê-lo ajudado.


GOSTEI 0
Emerson Azevedo

Emerson Azevedo

24/05/2006

Obrigado Adriano.
Funcionou perfeitamente.
Um abraço.


GOSTEI 0
POSTAR