Skip to content
Daniel de Morais Compartilhe. Aprenda. Evolua.
Infocotidiano Infocotidiano

Meu dia-a-dia tecnológico

Infocotidiano
Infocotidiano

Meu dia-a-dia tecnológico

Formulário de pesquisa padrão com parâmetros

Daniel Morais, 2020

Hoje vou mostrar como criar um formulário de pesquisa padrão.

Passar parâmetros entre um formulário e outro como campos que desejo listar na pesquisa, tabela e qual campo quero capturar no resultado da consulta.

Segue parte do código form pesquisa e o vídeo logo abaixo:

  private
     cCampos, cCampoRetorno, cTabela : string; 
  public
     constructor Create(AOwner : TComponent; par_lstCampos : Array of string;par_cTabela, par_cCampoResult :string);

Constructor

constructor TfrmPesquisa.Create(AOwner: TComponent;
  par_lstCampos: array of string; par_cTabela, par_cCampoResult: string);
var
 n : Integer;
begin
  inherited Create(AOwner);
  ZConnection1.Connect;
  cCampoRetorno:=par_cCampoResult;
  cCampos:='';
  cTabela:=par_cTabela;
  for n := 0 to Length(par_lstCampos) -1 do
    begin
      cbCampos.Items.Add(par_lstCampos[n]);
      if n = 0 then
        cCampos := par_lstCampos[n]
      else
        cCampos := cCampos +','+ par_lstCampos[n];
    end;
  cbCampos.ItemIndex:=1;
  if ZQuery1.Active then
     ZQuery1.Close;
  with ZQuery1.sql do
     begin
       Clear;
       add('select '+cCampos);
       add('from '+cTabela);
     end;
  ZQuery1.Open;
end;  

Botão de Pesquisa

procedure TfrmPesquisa.btnPesquisaClick(Sender: TObject);
begin
  if ZQuery1.Active then
     ZQuery1.Close;

  with ZQuery1.sql do
     begin
       Clear;
       add('select '+cCampos);
       add('from '+cTabela);
       add('where '+trim(cbCampos.Text)+' like :cParametro');
     end;
  if trim(cbFiltro.Text) = 'parte' then
     ZQuery1.ParamByName('cParametro').AsString:='%'+trim(edtBusca.text)+'%'
  else if trim(cbFiltro.Text) = 'igual' then
     ZQuery1.ParamByName('cParametro').AsString:=trim(edtBusca.text)
  else if trim(cbFiltro.Text) = 'inicio' then
           ZQuery1.ParamByName('cParametro').AsString:=trim(edtBusca.text)+'%'  ;
  ZQuery1.Open;
  edtResultado.Text:='';

end; 

Clique duplo dbgrid

procedure TfrmPesquisa.DBGrid1DblClick(Sender: TObject);
begin
  edtResultado.Text:=ZQuery1.FieldByName(cCampoRetorno).AsVariant;
  ZQuery1.Close;
  ZConnection1.Disconnect;
  frmPesquisa.ModalResult:=mrYes;
end;     

No form principal, codigo p chamar a pesquisa

 frmPesquisa := TfrmPesquisa.Create(self,['codigo','nome','telefone'],'cliente','nome');
  try
     frmPesquisa.ShowModal;
     edtResultado.Text:= frmPesquisa.edtResultado.Text;
  finally
    FreeAndNil(frmPesquisa);
  end;  

Veja o vídeo:

lazarus #delphi #pascal #banco de dados #database #pesquisa #parametro entre formularios #formulario #parametros #formulario de pesquisa

Lazarus formulario de pesquisaformulariosparametro entre formularios

Navegação de Post

Previous post
Next post

Deixe um comentário Cancelar resposta

Você precisa fazer o login para publicar um comentário.

Pesquisa

ACBr acbr lazarus ACBRposprinter antivirus antivirus gratuito apagar atualizar AVG AVG FREE banco de dados chave estrangeira consulta create table criar tabela crosscompile cross compile cross compiling dbgrid delphi Dia do ACBr filtro flutter foreign key horse impressora de cupom instalar join lazarus Lazarus Streaming Day linux MariaDB mysql parametros pesquisa incremental pesquisa multipla PostGreSQL primary key Python query RDW rxdbgrid sql server update views where

  • Python para Programador Pascal – Parte #1
  • Monitora – Desenhe e monitore sua rede doméstica ou escritório. Escrito em Lazarus/FPC.
  • Crie seu projeto Lazarus/fpc a partir das tabelas do seu banco de dados.
  • Instalando o Node.js e Gerenciando Dependências no Windows
  • Introdução a Classes em Python, cliente
  • Dica Python: Como separar Listas de Forma Elegante
  • Python #01 – Instalando Python e Studio Code no Linux
  • Entendendo Operadores de Comparação Python
  • Entendendo os Operadores Aritméticos em Python
  •  IntraWeb no Lazarus – Primeiros Passos
  • Utilizando Interpose Class no Lazarus
  • Antivírus Gratuitos DEZ2024
  • Operadores em Python
©2026 Infocotidiano | WordPress Theme by SuperbThemes