DBGrid On CLick
Gostaria de saber como faço para quando clicar em qualquer linha do BDGrid os dados dessa linha ir para um Edit.
Exemplo:
Faço uma busca e quero colocar o resultado dessa busca em um Edit
Agradeço desde já
Marcelo :)
Exemplo:
Faço uma busca e quero colocar o resultado dessa busca em um Edit
Agradeço desde já
Marcelo :)
_celo
Curtidas 0
Respostas
Adriano Santos
21/07/2005
Cara, me perdoe se não entendi o que quer, mas não seria o caso de usar um DBEdit?
Quando paramos em cima de um registro no grid, estamos em cima de um registro na tabela/query. Isso significa que vc pode colocar um dbEdit ligado na mesma tabela/query associado ao campo que deseja mostrar no ´edit´.
Quando paramos em cima de um registro no grid, estamos em cima de um registro na tabela/query. Isso significa que vc pode colocar um dbEdit ligado na mesma tabela/query associado ao campo que deseja mostrar no ´edit´.
GOSTEI 0
Arc
21/07/2005
no evento on create do form coloque :
DBGrid1.ControlStyle :=
DBGrid1.ControlStyle + [csClickEvents];
Tform(DBGrid1).OnClick := DBGrid1Click;
crie a procedure:
procedure DBGrid1Click(Sender: TObject);
em private
em
procedure Tform.DBGrid1Click(Sender: TObject);
begin
// sua rotina
end;
se vc realmente usa o edit ao inves do dbedit, acho que é uma solução aceitavel
DBGrid1.ControlStyle :=
DBGrid1.ControlStyle + [csClickEvents];
Tform(DBGrid1).OnClick := DBGrid1Click;
crie a procedure:
procedure DBGrid1Click(Sender: TObject);
em private
em
procedure Tform.DBGrid1Click(Sender: TObject);
begin
// sua rotina
end;
se vc realmente usa o edit ao inves do dbedit, acho que é uma solução aceitavel
GOSTEI 0
Adriano Santos
21/07/2005
Fiz um teste aqui com a dica do [b:51768cee03]arc[/b:51768cee03] e se caso você deseje pegar o conteudo do campo que o usuário clicou no DbGrid e mostrar no edit, seu procedimento onClick pode ficar com algo semelhante a isto:
Só tomando cuidado com os tipos de dados diferentes pra ver se não vai dar nenhum erro.
procedure TForm1.DBGrid1Click(Sender: TObject); begin Edit1.text := DBGrid1.SelectedField.Text; end;
Só tomando cuidado com os tipos de dados diferentes pra ver se não vai dar nenhum erro.
GOSTEI 0
_celo
21/07/2005
O Processo funcionou do jeito que eu queria obrigado.
Mas se eu tiver dois campo no DBGrid1 e quero colocar cara campo em um Edit como faria?
Agradeço desde já.
:)
Mas se eu tiver dois campo no DBGrid1 e quero colocar cara campo em um Edit como faria?
Agradeço desde já.
:)
GOSTEI 0
Carlosrm
21/07/2005
_Celo,
se tiver dois campos na dbgrid, uma sugestão (caso não queira usar dbedit, conforme sugeriu o asrsantos):
carlosrm :wink:
se tiver dois campos na dbgrid, uma sugestão (caso não queira usar dbedit, conforme sugeriu o asrsantos):
procedure TForm1.DBGrid1Click(Sender: TObject); begin Edit1.text := DBGrid1.Fields[0].AsString; Edit2.text := DBGrid1.Fields[1].AsString; end;
carlosrm :wink:
GOSTEI 0
_celo
21/07/2005
Quando coloque deu um erro de Access Violation. E agora?
:(
procedure TFrmEmprestar.DBGridClick(Sender: TObject);
begin
EdtEmpretimoAluno.text := DBGrid1.Fields[1].AsString;
EdtConAluno.text := DBGrid1.Fields[2].AsString;
end;
Esse é o meu codigo..
:(
procedure TFrmEmprestar.DBGridClick(Sender: TObject);
begin
EdtEmpretimoAluno.text := DBGrid1.Fields[1].AsString;
EdtConAluno.text := DBGrid1.Fields[2].AsString;
end;
Esse é o meu codigo..
GOSTEI 0
Gameiro
21/07/2005
Em vez de pegar os dados do DBGrid pegue direto do seu Dataset
Ex.:
e se necessário faça as conversões dos tipos que necessitar, de inteiro para string ou para float.
Ate mais, espero ter ajudado :wink:
Ex.:
EdtEmpretimoAluno.text := datamodule1.cdsAluno.fieldbyname(´Campo2´).asstring; EdtConAluno.text := datamodule1.cdsAluno.fieldbyname(´campo1´).asstring;
e se necessário faça as conversões dos tipos que necessitar, de inteiro para string ou para float.
Ate mais, espero ter ajudado :wink:
GOSTEI 0
Carlosrm
21/07/2005
_Celo,
se tiver dois campos exibidos na grid, os índices serão 0 e 1
... Fields[0]...
... Fields[1]...
carlosrm
se tiver dois campos exibidos na grid, os índices serão 0 e 1
... Fields[0]...
... Fields[1]...
carlosrm
GOSTEI 0
_celo
21/07/2005
Valew galera mais uma vez muito obrigado funcionou legal.
:D
:D
GOSTEI 0