GARANTIR DESCONTO

Fórum DBGrid On CLick #289101

21/07/2005

0

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 :)


_celo

_celo

Responder

Posts

22/07/2005

Adriano Santos

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


Responder

Gostei + 0

22/07/2005

Arc

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


Responder

Gostei + 0

22/07/2005

Adriano Santos

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:

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.


Responder

Gostei + 0

24/07/2005

_celo

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

:)


Responder

Gostei + 0

24/07/2005

Carlosrm

_Celo,

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:


Responder

Gostei + 0

25/07/2005

_celo

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


Responder

Gostei + 0

25/07/2005

Gameiro

Em vez de pegar os dados do DBGrid pegue direto do seu Dataset

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:


Responder

Gostei + 0

26/07/2005

Carlosrm

_Celo,

se tiver dois campos exibidos na grid, os índices serão 0 e 1

... Fields[0]...
... Fields[1]...

carlosrm


Responder

Gostei + 0

26/07/2005

_celo

Valew galera mais uma vez muito obrigado funcionou legal.

:D


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar