Olá galera, nesta Quick Tips, irei mostra como podemos criar uma tela de pesquisa padrão usando DataSource, para que possamos aproveitar a mesma para qualquer tipo de DataSet, ou seja ClientDataSet, DataSets do BDE, DataSets do IB, DataSets do DBExpress, entre outros.
Vamos à construção do exemplo:
Adicione um Form e salve o mesmo como uFrmPesquisa.pas, logo em seguida vamos mudar o nome do mesmo para FrmPesquisa e agora vamos adicionar alguns componentes ao Form:
1 Panel ( PnlPesquisa )
1 DBGrid (GridPesquisa – Vamos adicionar duas colunas)
1 LabeledEdit (EdtConteudo )
1 DataSource ( DSPesquisa )
1 SpeedButton ( BtnPesquisa )
Veja como o exemplo irá ficar

Agora vamos incrementar nosso exemplo adicionando alguns itens dentro da nossa unit.
type
TTipoPesquisa = (TPString, TPNumero, TPData); ( Adicionaremos este eunumerado com os tipos de pesquisa que poderão ser aceitos pela nossa tela de Pesquisa Padrão }
TFrmPesquisa = class(TForm)
GridPesquisa: TDBGrid;
Panel1: TPanel;
BtnPesquisa: TSpeedButton;
EdtConteudo: TLabeledEdit;
PnlPesquisa: TPanel;
DSPesquisa: TDataSource;
private
{ Private declarations }
public
{ Public declarations }
xCampoPesquisa: String; ( Vamos adicionar esta variável para podermos ter de maneira fácil como trabalhar com o campo de Pesquisa }
TipoPesquisa: TTipoPesquisa; ( Vamos adicionar esta variável para escolhermos o tipo de pesquisa que queremos trabalhar }
end;
Este exemplo que estou fazendo vou ilustrar usando o ClientDataSet, no caso é o que geralmente todos usam, mas aqueles que não usam podem fazer a adaptação, vou explicar agora como fazer a adaptação, usando Type Cast, mais pra frente vou mostrar o exemplo completo, veja que nele terá a seguinte linha :
· Linha Original :
With TClientDataSet(DSPesquisa.DataSet) do
· Linha para TADOTable :
With TADOTable(DSPesquisa.DataSet) do
· Linha para TSQLTable:
With TSQLTable(DSPesquisa.DataSet) do
· Linha para TTable:
With TTable(DSPesquisa.DataSet) do
Como vocês podem notar, estou usando Type Cast, como dito anteriormente, para acessar as opções da Classe que você esta trabalhando, no meu caso vou usar todas as propriedades da classe TClientDataSet, de repente alguns comandos nos componentes que vocês usam não vão existir. Então terá que ser feito uma outra adaptação que daí fica em cargo de vocês, mas qualquer dúvida basta mandar um e-mail que vemos uma solução.
No próximo artigo vou mostrar a codificação do exemplo completo.
Fico por aqui ate à próxima Quick Tips. Baixe o exemplo completo neste post.
Um abraço
Wesley Y
wyamazack@lithic.com.br