Sejam bem vindos ao nosso forum, onde havera hacks, utilitários tutoriais e dicas para diversos jogos, fique conosco e desfrute do melhor.

Participe do fórum, é rápido e fácil

Sejam bem vindos ao nosso forum, onde havera hacks, utilitários tutoriais e dicas para diversos jogos, fique conosco e desfrute do melhor.
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Criando um extrator

Ir para baixo

Criando um extrator  Empty Criando um extrator

Mensagem por Mr.Positive Qua Jan 12, 2011 4:26 pm

Primeiro baixe o componente DFUnRAR no seguinte Link

[url="http://www.rarlab.com/rar/TDFUnRar.zip"]Download DFUnRAR[/url]

[url="http://www.virustotal.com/file-scan/report.html?id=64a75112ca66a3656f229addf8ff50e4a442a65a606523520a88f15bc3443b9d-1266496715"]Scan[/url]

descomprima o arquivo em um diretório qualquer

vá até o diretório "src" e abra o arquivo "DFUnRAR.pas"

vá até Component > Install Compoenent



Clique na aba "Into New Package"



Clique em OK e depois responda "Yes" na mensagem que irá aparecer

Pronto! O Componente será instalado e a aba "DFrisch" aparecerá no Delphi

Crie um novo projeto no Delphi

Adicione 3 Label, 2 Button,2 SpeedButton, 1 OpenDialog, 2 Edit, um Gauge que fica na aba "Samples"

e por fim o componente DFUnRAR (na aba DFrisch)

Agora mude algumas propriedades....


Label1.Caption = "Arquivo:"

Label2.Caption = "Extrair para:"

Label3.Caption = "Progresso:"

Button1.Caption = "Extrair"

Button2.Caption = "Cancelar Extração"

SpeedButton1.Caption = "..."

SpeedButton2.Caption = "..."

SpeedButton1.Flat = "True"

SpeedButton2.Flat = "True"

OpenDialog1.Filer = "Arquivos RAR|*.rar"

Adicione a unit "untUnRAR" e a unit QDialogs que tem uma função util para nós

( tanto tempo sem mexer com delphi que não lembro + como escolher diretórios manualmente Imagem


Declare na seção Public do Form1 as variáveis


IsExtracting: Boolean;

Abort: Boolean;


no evento OnCreate do Form1 adicione:

procedure TForm1.FormCreate(Sender: TObject);

begin

LoadRarLibrary();

end;

e no envento OnDestroy:

procedure TForm1.FormCreate(Sender: TObject);

begin

LoadRarLibrary();

end;


no evento onclick do Button1 adicione o seguite código:

Button1.Enabled:=False;
Button2.Enabled:=True;
SpeedButton1.Enabled:=False;
SpeedButton2.Enabled:=False;
Gauge1.Progress:=Gauge1.MinValue;
with Edit2 do
if Text <> '' then DFUnRAR1.Directory:=Text;
DFUnRar1.FileName := Edit1.Text;
if not FileExists(DFUnRar1.FileName) then begin
ShowMessage('Este arquivo não existe!'+#13#10+
'Você deve digitar o nome de um arquivo');
Exit;
end
else begin
isExtracting:=True;
DFUnRar1.Extract;

isExtracting:=False;
if not Abort then ShowMessage('Extração Competa!');
Button1.Enabled:=True;
Button2.Enabled:=False;
SpeedButton1.Enabled:=True;
SpeedButton2.Enabled:=True;
end;



no evento onclick do Button2 adicione:


DFUnRAR1.StopProcessing:=True;
Abort:=True;
ShowMessage('Extração cancelada pelo usuário!');
Gauge1.Progress:=Gauge1.MinValue;


no envento onclick do SpeedButton1 adicione:


if OpenDialog1.Execute then
Edit1.Text := OpenDialog1.FileName;


e no evento onclick do SpeedButton2 adicione:

var
dir: widestring;
begin
// função da unit QDialogs seleciona um diretório
if SelectDirectory('Selecione um diretório','',dir ) then
Edit2.Text:=dir+'';
end;


mude a propriedade CanProgress do DFUnRAR1 para True e adicione o seguinte codigo ao evento onprogress
do componente DFUnRAR1:


if (FileCount > 0) and (isExtracting) then
begin
Gauge1.Progress:=FilesProcessed * 100 div FileCount;
Application.ProcessMessages;
end;


Copie a dll "UnRAR.dll" para o diretório do seu aplicativo!!
se a dll não estiver lá o programa não funciona!!!


Pronto! Agora seu programa já pode extrair arquivos RAR

por enquanto este programa extrai todos os arquivo comprimidos dentro do RAR
mas com alguns melhoramentos ele pode extrair arquivos individuais

PS: não comentei o código aqui porque ia ficar uma confusão.

Credito: au Criado
Mr.Positive
Mr.Positive
Membro
Membro

Mensagens : 40
Agradecimentos : 0
Data de inscrição : 12/01/2011
Idade : 29
Localização : Recreio
Humor : Feliz !
Criando um extrator  Left_bar_bleue0 / 1000 / 100Criando um extrator  Right_bar_bleue



Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos