INCLUINDO E EXTRAINDO ARQUIVOS DO SEU APLICATIVO DELPHI
Adicionado em 28/06/2024
Neste exemplo, vamos mostrar como você pode incluir qualquer tipo de arquivo dentro do seu executável feito em Delphi e depois extrair ele de forma correta.
Primeiramente, abra o Bloco de Notas e adicione as seguintes linhas ao documento:
ARQUIVO_1 RCDATA "D:\\Arquivo.dll"
O texto ARQUIVO_1 servirá de referência para trabalharmos com o arquivo depois. Substitua o caminho "D:\\Arquivo.dll" pelo caminho do arquivo que você deseja incluir no seu projeto (pode ser qualquer tipo de arquivo).
Agora, no Bloco de Notas, clique em Arquivo/Salvar Como. Na janela que abrir, selecione na parte inferior Tipo e mude de Documento Texto (*.txt) para Todos os Arquivos (*.*).
Salve seu arquivo com o nome que você desejar seguido da extensão .RC. Por exemplo, Arquivo.RC.
Para transformar o arquivo .RC em .RES, vá até o diretório que está instalado seu Embarcadero Delphi (geralmente na pasta C:\Arquivos de Programas (x86)\Embarcadero\Studio\ seguido da versão do seu compilador.
Ao entrar no diretório, vá até a pasta bin, e encontre o programa BRCC32.exe.
Abra o Prompt de comando, e digite "CD " seguido do caminho até a pasta bin do seu delphi. No meu caso é: CD C:\Program Files (x86)\Embarcadero\Studio\22.0\bin
Digite no seu prompt de comando: BRCC32 "D:\Arquivo.RC" e pressione Enter. Neste momento, um arquivo chamado Arquivo.RES será criado na mesma pasta do seu arquivo Arquivo.RC. Note que o tamanho do arquivo Arquivo.RES deve ser o mesmo do seu arquivo.
Copie o Arquivo.RES para a pasta do seu programinha em Delphi que você irá adicionar o arquivo.
Abra seu compilador Delphi, peça uma nova aplicação VCL e vá para a página de código.
Sob a cláusula {$R *.dfm} digite {$R Arquivo.RES}.
Volte para seu Form principal, adicione um botão (TButton) e o componente SaveDialog (TSaveDialog).
Dê dois cliques no botão, e adicione o seguinte código:
Agora, se você rodar o seu programa e clicar sobre o botão, uma janela pedindo para salvar o arquivo irá aparecer.
Neste caso, você deve adicionar o nome completo do arquivo a ser extraído, por exemplo, Arquivo.DLL (não esqueça de adicionar a extensão).
Você receberá uma mensagem caso a extração tenha ocorrido de forma correta.
Agora, vamos verificar se o nosso arquivo DLL está integro. Neste caso, utilizamos o arquivo DLL que criamos no nosso exemplo anterior. Para ver, CLIQUE AQUI.
O nosso DLL tem uma função para verificar se um determinado número é primo.
Desta forma, adicione ao seu Form um TEdit e um novo TButton. Na propriedade Text do seu Edit, adicione um número que você desejar.
Dê dois cliques no novo TButton e adicione o seguinte código:
Por fim, temos que chamar a função EhPrimo de dentro da DLL. Pra isso, declare a função:
function EhPrimo(Valor: Integer): Boolean; stdcall;
Acima da declaração de variáveis globais var.
E agora adicione a segunda função:
function EhPrimo(Valor: Integer): Boolean; external 'Arquivo.dll';
Logo abaixo da cláusula: {$R Arquivo.RES}
Não se esqueça que pra funcionar, você deve extrair o arquivo DLL no mesmo diretório do seu executável.
Agora, rode novamente seu programa, extraia o arquivo na mesma pasta do seu executável e verifique se a função de verificar o número primo está funcionando.
IMPORTANTE: se você adicionar a chamada a DLL da função EhPrimo e tentar rodar o seu programa, o programa irá esperar que o arquivo DLL já esteja na pasta. Ou seja, você deve extrair o arquivo antes de adicionar a chamada a DLL.
Bom, é isso pessoal! Espero que tenham gostado. Se tiverem alguma dúvida, não deixem de entrar em contato.