Skip to content
Daniel Morais Compartilhe. Aprenda. Evolua.
Aprenda Lazarus Aprenda Lazarus

Blog dedicado a quem quer aprender Lazarus. Dicas, Tutorias e Videos !

  • Links Úteis
  • Lazarus
  • Banco de Dados
  • Componentes
  • ACBr
  • Dicas
  • Canais do Youtube
    • Anderson Fiori
    • Anderson Junior G Da Silva
    • Adriano Lima
    • Alexandre Magno Souza
    • Ari Rodrigues
    • Daniel Morais
    • Daniel Steckler
    • Eder Telhado
    • Fabio Luis Girardi
    • Gilberto – XyberSportGames
    • Humberto Sales
    • Insist Informática
    • JR Escola
    • Luciano Rocha
    • Marcos Douglas B. Santos
    • Pedro Araujo
    • Sergio Falco Daniel
  • Grupos Telegram
    • Lazarus Free Pascal
    • Lazarus BR
Aprenda Lazarus
Aprenda Lazarus

Blog dedicado a quem quer aprender Lazarus. Dicas, Tutorias e Videos !

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

Daniel Morais,

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

ACBr acbrbal acbr lazarus ACBRposprinter atalhos Atualizar atualizar lazarus controle de tanques crosscompile cross compile cross compiling curso dbgrid Delphi Dia do ACBr formularios grid horse impressora de cupom imprimir cupom instalador acbr json Lazarus lazarus android lazarus rede LazReport menu MySQL nivel de tanque Palestras pesquisa pesquisa com varios camois pesquisa dimanica pesquisa incremental pesquisa multipla PostGreSQL Programação RDW rest data were rxdbgrid servidor Servidor Rest dataware TEF Utilitários views

  • 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.
  •  IntraWeb no Lazarus – Primeiros Passos
  • Utilizando Interpose Class no Lazarus
  • Lazarus IDE Aprendendo por exemplos
©2026 Aprenda Lazarus | WordPress Theme by SuperbThemes