Social Icons

^^

terça-feira, 23 de novembro de 2010

Como criar arquivos de recursos no Delphi?

    Muitas vezes nós programadores precisamos embutir arquivos dentro de nosso executável para não ficar-mos distribuindo arquivos separadamente, pode ser um som wav, uma dll ou um executável, etc...Nesse tutorial mostrarei  como embutir arquivos dentro do executável e como extrai-los.

1° pegue o arquivo que você deseja transformar em arquivo de recurso, ou seja o arquivo que você quer colocar dentro do seu executável;

(Nesse exemplo eu vou pegar um arquivo chamado arquivo.exe)


2° copie o arquivo (no meu caso é arquivo.exe) para o o disco local C:\;

3° Abra o seu bloco de notas e digite o seguinte:

Recurso EXEs C:\arquivo.exe 

Onde Recurso é o nome que vamos usar para nomea-lo/chama-lo em nossa aplicação.

4° Após escrever no bloco de notas, salve-o observando os seguintes detalhes;

Em nome do arquivo coloque recurso.rc

Em salvar como tipo marque Todos os arquivo e salve no disco local C

5° Vá em iniciar>> executar >> e digite cmd e tecle enter, isso abrirá o pront de comando,se você não sabe o que o pront de comando clique aqui, depois que o pront estiver aberto digite o seguinte:

cd C:\ e tecle enter
brcc32 recurso.rc e tecle enter

Se tiver dado tudo certo um arquivo chamado recurso.res deve ter sido criado no disco C:

6° Agora abra seu delphi clique em File > Save All, Salve a unit com o nome de unitPrincipal, e o projeto com o nome de testerecurso. Copie o recurso.res para a mesma pasta onde você salvou seu projeto.

7° Vá no código da sua unit e abaixo de {$R *.dfm} digite {$R recurso.res} com isso assim que você compilar o seu programa automaticamente ele vai embutir o recurso no seu executavel.

8°  Crie a seguinte procedure Abaixo de {$R recurso.res}:

procedure recurso;
var
  myresource: TResourceStream;
Begin
   myresource := TResourceStream.Create(Hinstance, 'Recurso', 'EXEs');
   Try
      if not FileExists('arquivo.exe') then
         myresource.SavetoFile('arquivo.exe');
   finally
      myresource.Free;
   end;
end;



9° No evento OnCreat do form digite:

recurso;

10° Execute sua aplicação para ver o resultado.

Seu código deve ficar + ou - assim:

//*************************************************************************

unit Unit1Principal;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
{$R recurso.res}

procedure recurso;
var
  myresource: TResourceStream;
Begin
   myresource := TResourceStream.Create(Hinstance, 'Recurso', 'EXEs');
   Try
      if not FileExists('arquivo.exe') then
         myresource.SavetoFile('arquivo.exe');
   finally
      myresource.Free;
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
recurso;
end;

end.



3 comentários:

  1. valeu tirou minha duvida,site muito bom mesmo.

    ResponderExcluir
  2. Muito bom.
    E o site também.
    Se for possível explicar o passo 8, só para clarear a ideia.

    Obrigado, ajudou bastante.

    ResponderExcluir
  3. Procedures são procedimentos... o passo 8 cria um procedimento para extrair o arquivo que foi transformado em recurso.

    ResponderExcluir

Popular Posts

 

Seguidores

Hora exata:

Total de visualizações de página