Preencher todos os edits ao selecionar um cliente

Delphi

Firebird

22/01/2019

Eae pessoal, to com uma duvida, como eu posso, ao aparecer o meu dbgrid na pagina de pesquisa, dar uma duplo click e preencher os edits com os dados do cliente?
Lucas Araújo

Lucas Araújo

Curtidas 0

Melhor post

Jucélio Silva

Jucélio Silva

22/01/2019

E ae Lucas, blz cara,

Então, se você está com os dados na grid é sinal que já carregou de algum lugar "banco ou Excel por exemplo", então o trabalho pesado já está feito, para mostrar a linha selecionada de uma grid bastaria pegar o registro posicional do seu componente "Query" . Ao selecionar uma linha o dephi posiciona de forma automática o registro do componente que está com seus dados "Query, MeData ou qualquer outro" , então é só pegar esse valor e passar para o edit, ficaria +- assim "pode mudar conforme componente que está usando e grid, mas a ideia é sempre a mesma":

// duplo click do grid 
procedure TForm1.GridDblClick(Sender: TObject);
begin
   edtCliente.text := qry.fields[0].asstring; // pega pelo indice dos campos começa do ZERO
   edtCliente.text := qry.fieldByName('nomeCampo').asstring; // pega pelo nome do campo 
   edtCliente.text := qryCampoInstanciado.asstring; // caso tenha instanciado o campo no componente pode pegar diretamente por ele 
end;

// se seu campo for DB isso ocorre de forma automática, só tem que entender que o que ve no grid é uma representação dos seus dados na memoria no delphi , logo pode pegar do componente que recebeu esses dados que a posição será o registro selecionado no grid.
GOSTEI 1

Mais Respostas

Lucas Araújo

Lucas Araújo

22/01/2019

E ae Lucas, blz cara,

Então, se você está com os dados na grid é sinal que já carregou de algum lugar "banco ou Excel por exemplo", então o trabalho pesado já está feito, para mostrar a linha selecionada de uma grid bastaria pegar o registro posicional do seu componente "Query" . Ao selecionar uma linha o dephi posiciona de forma automática o registro do componente que está com seus dados "Query, MeData ou qualquer outro" , então é só pegar esse valor e passar para o edit, ficaria +- assim "pode mudar conforme componente que está usando e grid, mas a ideia é sempre a mesma":

// duplo click do grid 
procedure TForm1.GridDblClick(Sender: TObject);
begin
   edtCliente.text := qry.fields[0].asstring; // pega pelo indice dos campos começa do ZERO
   edtCliente.text := qry.fieldByName('nomeCampo').asstring; // pega pelo nome do campo 
   edtCliente.text := qryCampoInstanciado.asstring; // caso tenha instanciado o campo no componente pode pegar diretamente por ele 
end;

// se seu campo for DB isso ocorre de forma automática, só tem que entender que o que ve no grid é uma representação dos seus dados na memoria no delphi , logo pode pegar do componente que recebeu esses dados que a posição será o registro selecionado no grid.
GOSTEI 0
Lucas Araújo

Lucas Araújo

22/01/2019

Eae cara, então, certeza que o dbgrid tem procedures?, to tentando esse duplo click e nao ta rolando nao kkk
GOSTEI 0
Jucélio Silva

Jucélio Silva

22/01/2019

Eae cara, então, certeza que o dbgrid tem procedures?, to tentando esse duplo click e nao ta rolando nao kkk


kkkkk , não Lucas, criei esse exemplo mas vc precisa fazer assim, seleciona o grid, depois vai na aba de eventos e procura por OnDblClick , e clica duas vezes ai, com isso o delphi vai gerar a procedure para vc, se fizer na mão tem que declarar ela no topo junto com as funções....

Dentro da procedure vc coloca seu codigo, mas esse que mostri ai é um exemplo, tem que ver o nome de seus componentes e o nome dos campos do banco no seu objeto query....

qlqr coisa posta o erro que te dou uma força...

GOSTEI 0
POSTAR