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

Meu dia-a-dia tecnológico

  • Conheça o Autor do Blog
  • Dicas
  • Firebird
  • Lazarus (Free Pascal)
  • Microsoft SQLServer
  • MySQL/MariaDB
  • PostgreSQL
  • Python
Infocotidiano
Infocotidiano

Meu dia-a-dia tecnológico

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

Daniel Morais, 20202020

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.

Delphi e Firedac.

Declarações(frmPesquisa):

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

Creator (frmPesquisa)

constructor TfrmPesquisa.Create(AOwner: TComponent;
  par_lstCampos: array of string; par_cTabela, par_cCampoResult: string);
var
 n : Integer;
begin
  inherited Create(AOwner);
  Conexao.Open;
  cCampoRetorno := par_cCampoResult;
  cCampos:='';
  cbCAMPOS.Clear;
  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 qrSQL.Active then
     qrSQL.Close;
  with qrSQL.SQL do
      begin
        Clear;
        add('Select '+cCampos);
        add('from '+cTabela)
      end;
  qrSQL.Open;

end;

Botão de Pesquisa

procedure TfrmPesquisa.btnPesquisaClick(Sender: TObject);
begin
  if qrSQL.Active then
     qrSQL.Close;
  with qrSQL.SQL do
      begin
        Clear;
        add('Select '+cCampos);
        add('from '+cTabela);
        add('where '+trim(cbCAMPOS.Text)+' like :cParametro');
      end;
  if cbFiltro.Text = 'parte' then
     qrSQL.ParamByName('cParametro').AsString := '%'+trim(edtBusca.Text)+'%'
  else if cbFiltro.Text = 'inicio' then
     qrSQL.ParamByName('cParametro').AsString := trim(edtBusca.Text)+'%'
  else if cbFiltro.Text = 'igual' then
     qrSQL.ParamByName('cParametro').AsString := trim(edtBusca.Text) ;
  qrSQL.Open;

end;

DBgrid double click

procedure TfrmPesquisa.DBGrid1DblClick(Sender: TObject);
begin
  edtRetorno.Clear;
  edtRetorno.Text := qrSQL.FieldByName(cCampoRetorno).AsVariant;
  qrSQL.Close;
  Conexao.Close;
  frmPesquisa.ModalResult := mrYes;
end;

Botão Cliente do FrmPrincipal

procedure TfrmPrincipal.btnClienteClick(Sender: TObject);
begin
   frmPesquisa := tfrmPesquisa.Create(self,['codigo','nome','telefone'],'cliente','nome');
   try
     if frmPesquisa.ShowModal = mrYes then
        edtRetornoPesquisa.Text := frmPesquisa.edtRetorno.Text
     else
        edtRetornoPesquisa.Clear;
   finally
     FreeAndNil(frmPesquisa);
   end;
end;

delphi #lazarus #formulário delphi #formulário de pesquisa #pesquisa padrão #passar parâmetros no formularo #formulário com parametros #parametros array #parametros vetor #array #vetor #firedac #banco de dados #mysql #sql #postgre #daniel de morais #infocotidiano

Delphi consulta com parametrosconsulta delphiconsultasformuárioparametrosparametros entre formulariostela de consulta

Navegação de Post

Previous post
Next post

Comment

  1. Willian disse:
    2022 às

    Parabéns pela vídeo aula “Formulário De Pesquisa Padrão Com Parâmetros Delphi”
    Primeiro vídeo seu que assisti, e achei de longe –> “Altíssimo nível”
    Impressionante seu nível de conhecimento e didática.
    Nesse exemplo seria interessante colocar um campo: “Automático” caso não queira informar código, nome, ou qualquer outro campo, nesse caso a opção “Automático” iria pesquisar em vários campos ao mesmo tempo, sem a necessidade do usuário escolher o campo a ser pesquisado.

    Acesse para responder

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