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 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 AVG AVG FREE avira free avira off line banco de dados calcular como instalar CMSP no windows consulta cross compile crosscompile cross compiling curso postgresql datetime dbgrid delphi filtro Firebird flutter gratuito Instaladores off line instalar CMSP lazarus linux MariaDB mysql offline operadores parametros pascal pesquisa incremental pesquisa multipla PostGreSQL programação Python query RDW rxdbgrid select sql server update

  • 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
  • Antivírus Gratuitos DEZ2024
  • Operadores em Python
  • A Importância das Variáveis em Python
  • O Comando print no Python
  • E nossa participação na 5a edição do Dia do ACBr
  • Compilar exemplo C# com ACBrLibPosPrinter
  • Solução do Erro “THIS IS NOT PROLIFIC PL2303” nas impressoras Elgin
©2026 Infocotidiano | WordPress Theme by SuperbThemes