Preencher todos os edits ao selecionar um cliente
22/01/2019
0
Lucas Araújo
Post mais votado
22/01/2019
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.
Jucélio Silva
Mais Posts
22/01/2019
Lucas Araújo
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.
22/01/2019
Lucas Araújo
22/01/2019
Jucélio Silva
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...
Clique aqui para fazer login e interagir na Comunidade :)