Esse artigo faz parte da revista Clube Delphi edição 9. Clique aqui para ler todos os artigos desta edição



Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML.


Copiando no padrão Windows

Utilizando a caixa de diálogo do Windows para cópia

 

Dentro do conceito de reapro-veitar as funcões que as API's disponibilizam, um dos recursos fascinantes do Windows e o diálogo que aparece quando se copia arquivos. Imaginem o trabalho para fazer algo similar; teriamos que utilizar componentes VCL como Tanimation, TprogressBar, Tlabel e Tbutton, além de criar um algoritmo complexo para permitir máscaras, e se a cópia for para unidades de disco flexível, solicitar outro disco após preencher o primeiro. Analisaram o desafio? Prefiro apenas agradecer pelo fato de possuirmos todas estas funcionalidades prontas atraves da unit ShellAPI.

         Então vamos aprender a copiar arquivos usando o Shell do Windows:

Nota do Autor: Inclua na seção uses ShellApi, caso contrário o compilador desconhecerá os tipos utilizados.

 

Var

Dados: TSHFileOpStruct;

begin

FillChar(Dados,SizeOf(Dados),0);

with Dados do

begin

wFunc := FO_COPY;

pFrom := PChar('c:\Fabio\*.txt');

pTo := PChar('a:\');

fFlags:= FOF_ALLOWUNDO;

end;

SHFileOperation(Dados);

end;

         Infelizmente, registro como é difícil conseguir documentacão sobre as funcões contidas na unit ShellAPI. Que a Corel / Inprise viabilize maiores informações sobre este assunto.

         Deduzimos que TSHFile OpStruct é um tipo record com os seguintes campos:

 

wFunc                   Parâmetro da tarefa a ser realizada;

pFrom                   Parâmetro com o path de origem;

pTo                       Parâmetro com o path de destino;

fFlags                   Parâmetro com opcões adcionais.

SHFileOperation     Realiza a tarefa de copiar os arquivos contidos em dados .pFrom para dados .pTo.

         Esta forma de copiar arquivos oferecem três vantagens básicas:

 

1) O Shell avisa para pôr um próximo disco quando o atual estiver cheio.

 

2) Mostra a barra de progresso.

 

3) Pode copiar arquivos usando máscara de uma forma extremamente simples.

        

         Até nosso próximo encontro e que os especialistas em C e C++ nos auxiliem cada vez mais para utilizarmos as funcões da misteriosa unit ShellAPI.