Esse artigo faz parte da revista Clube Delphi edição 12. 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.

Componente FXLocate

Pesquise através do objeto DataSource

 

Escrito por Chuck Gadd, o fxloc existe desde os primórdios do Delphi. Sua função básica é a localização de um texto (string)  na tabela e nos campos definidos pelo usuário, de maneira bem simples. Os campos podem ser de qualquer tipo, incluindo campos Memo, sem que haja necessidade de informar o formato ao componente.

         Uma vez colocado no formulário da aplicação, as propriedades DataSource, DataField e FindText devem ser preenchidas, o que pode ser feito tanto em modo de edição  como em modo de execução. Isso  permite que se use apenas um FXLocate para atender todo o aplicativo. Uma vez que estes parâmetros estão definidos , utilize os comandos 'FxLocate1.Locate' para executar a busca e 'FxLocate1.Locatenext' para realizar a busca pela próxima ocorrência  do texto.  O mais interessante é que o FxLocate se conecta ao DataSource,  permitindo efetuar a busca em objeto ttable, tquery ou qualquer outro que se conecte ao datasource.

         A propriedade MatchType define como o FXLocate irá realizar a busca: maAnywhere indica que o texto a ser localizado pode estar em qualquer parte do conteúdo do campo (ex. desamarrar - ótimo para campos memo); maBeginning, será considerada a ocorrência no início da string (ex. macarrão) e maFull onde será considerada apenas a ocorrência completa (ex. macarrão).

O resultado da pesquisa pode ser verificado usando-se a função Found  (ex. if FxLocate1.found then...) que, obviamente, quebra vários galhos para o programador.

         Você pode ainda definir qual o cursor será exibido durante a pesquisa com FindCursor, desativar o DataSource  com DoBackground na posição true, definir a memória que será utilizada na operação MaxMemoSize, especificar se os indices serão utilizados através  de  UseIndexes, indicar se a busca levará em consideração maiúsculas e minúsculas com IgnoreCase, entre outros.

         Os eventos disponíveis são: OnFail, OnFind e OnProgress, suficientes para resolver casos especiais, embora não seja necessário escrever nenhuma linha de comando para se utilizar este componente.

 

A instalação no Delphi 4/5 deve ser feita da seguinte maneira:

 

1. Selecione no Delphi - Component/Install Packages.

 

2. Selecione Borland User Components e clique em Edit.

 

3. Na janela de  compilação, clique em Add e localize o diretório onde estão os arquivos do FxLoc.

 

4. Localize o arquivo Fxloc.dcu na janela Unit File Name ( ps:troque a seleção file of types para *.dcu).

 

5. Clique em Ok até retornar para a janela do compilador e clique em compile.

 

6. Será adicionada uma nova página a sua palette com o componente FxLocate.

        

         É importante lembrar que o package "Borland User Components" só estará disponível se já existirem componentes extras instalados no Delphi e que a opção Install component não funciona com o FxLocate.

         O Fxlocate está disponível em todas as versões do Delphi. Faça o download desse componente em: www.clubedelphi.com.br/componentes/database_controls/fxlocate.zip

         Tenho usado este componente desde sua versão para o Delphi 16 e me acostumei com sua presença em meus aplicativos. Pode-se dizer que não vivo mais sem ele.