“About” Catalog 1.0
Há dez dias deixamos à disposição dos nossos visitantes o CATALOG 1.0. E, agora, atendendo a pedidos, disponibilizamos os fontes do programa. Sentimo-nos muito gratificados pelo reconhecimento demonstrado por nossos visitantes e para cumprir com o objetivo maior desse portal (que é de compartilhar o conhecimento), disponibilizamos os fontes, além de um breve comentário sobre suas principais funções para melhor orientar os interessados.
Não tentamos reinventar a roda, mas programamos de forma a tornar mais fácil a retirada de suas principais funções e encaixá-las em qualquer outra aplicação que delas necessite.
Então, vamos a elas:
 1 – Deletar arquivos enviando para a Lixeira do Windows.
A rotina responsável por esse procedimento está escrita na Ãntegra logo abaixo:
procedure ToRecycle(AHandle: THandle; const ADirName: String);
var
 SHFileOpStruct: TSHFileOpStruct;
 DirName: PChar;
 BufferSize: Cardinal;
begin
 BufferSize := Length(ADirName) +1 +1;
 GetMem(DirName, BufferSize);
 try
   FillChar(DirName^, BufferSize, 0);
   StrCopy(DirName, PChar(ADirName));
   with SHFileOpStruct do
   begin
     Wnd := AHandle;
     wFunc := FO_DELETE;
     pFrom := DirName;
     pTo := nil;
     fFlags := FOF_ALLOWUNDO;
     fAnyOperationsAborted := False;
     hNameMappings := nil;
     lpszProgressTitle := nil;
   end;
   if SHFileOperation(SHFileOpStruct) <> 0 then
     RaiseLastWin32Error;
 finally
   FreeMem(DirName, BufferSize);
 end;
end;
Essa função foi estruturada com base no Livro: Delphi 5 Guia do Desenvolvedor (Steve Teixeira e Xavier Pacheco). Nosso trabalho consistiu em isolá-la e entende-la para deixarmos como biblioteca a fim de que seja usada em desenvolvimentos futuros.
Note que o que determina o envio do arquivo para a lixeira é que o wFunc que recebe FO_DELETE e o Flag FOF_ALLOWUNDO.
2 – Determinar as unidades removÃveis
Na verdade esta função determina todas as unidades existentes no computador, mas para o objetivo do CATALOG apenas usamos as mÃdias removÃveis.
A rotina completa pode ser encontrada na Unit1 no procedimento de criação do form (TForm1FormCreate(Sender:Tobject)). Vamos, agora, ajudar você a aproveitar todo o potencial deste procedimento.
A função varre toda letra possÃvel de ser atribuÃda a uma unidade do computador. Fizemos a rotina sempre selecionar as mÃdias removÃveis, pois a função GetDriveType(PChar(c)) dá um retorno para cada tipo.
Para usar essa função para reconhecer outros tipos de unidade será preciso saber o que significa cada um de seus retornos. Acompanhe:
0 – Não é possÃvel determinar o tipo da unidade
1 – Diretório raiz não existe
DRIVE_REMOVABLE – Unidade é removÃvel
DRIVE_FIXED – Unidade não é removÃvels
DRIVE_REMOTE – A Unidade é remota (de rede)
DRIVE_CDROM – A unidade é de CD ou DVD ROM
DRIVE_RAMDISK – A unidade é um disco em RAM
3 – Busca de uma string em um MemoÂ
Para fazer uma rotina de busca de string em um Memo foram combinados dois procedimentos (ambos poderão ser encontrados na Unit1).
- TForm1.BitBtn3Click(Sender:TObject)
- TForm1.FindDialog1Find(Sender:TObejct)
Essa rotina é muito fácil de ser implementada: a única coisa que será preciso fazer para adapta-la a outro programa é mudar os parâmetros para varredura, que neste caso estão feitos somente para o diretório ativo.
Já no segundo procedimento, o que faz a varredura propriamente dita (FindDialog1Find), não será necessário mudar nada.
Para qualquer esclarecimento entre em contato com o Clube da Informática.
Download do CATALOG 1.0 – CLIQUE AQUI!
Download dos Fontes do CATALOG 1.0 – CLIQUE AQUI!



Deixe seu comentário