Preencher todos os edits ao selecionar um cliente

22/01/2019

17

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?
Responder

Post mais votado

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.
Responder

Mais Posts

22/01/2019

Lucas Araújo

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.
Responder

22/01/2019

Lucas Araújo

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

22/01/2019

Jucélio Silva

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...

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar