ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Evento OnDblClick do dbgrid não funciona. Porque?

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
jpauloss
Profissional
Profissional


Registrado: Quinta-Feira, 17 de Agosto de 2006
Mensagens: 600
Localização: Salvador - Bahia

MensagemEnviada: Qua Ago 08, 2007 11:19 pm    Assunto: Evento OnDblClick do dbgrid não funciona. Porque? Responder com Citação

Estou tentando fazer mais não consigo. Quando dou dois clicks as infomações não vão para os edits/dbedits correspondentes. Que faço?

Vai aí o código:

procedure TF_MATERIAIS.DBGrid1DblClick(Sender: TObject);
begin
cod.Text:=dm.sdsMaterial.FieldByName('cod_ordenado').AsString;
descricao.Text:=dm.sdsMaterial.FieldByName('descricao').AsString;
un.Text:=dm.sdsMaterial.FieldByName('un').AsString;
unitario.Text:=dm.sdsMaterial.FieldByName('preco_unitario').AsString;
tipo.Text:=dm.sdsMaterial.FieldByName('tipo_conta').AsString;
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Ago 08, 2007 11:32 pm    Assunto: Responder com Citação

Nao sei se eh a melhor solução, mais vamos criar variaveis globais,
Código:
var
TForm....
vcod, vdescricao, vun, vunitario, vtipo : String; {var Globais}

e no evento oncellclick do dbgrid

Código:
begin
vcod:=dm.sdsMaterial.FieldByName('cod_ordenado').AsString;
vdescricao:=dm.sdsMaterial.FieldByName('descricao').AsString;
vun:=dm.sdsMaterial.FieldByName('un').AsString;
vunitario:=dm.sdsMaterial.FieldByName('preco_unitario').AsString;
vtipo:=dm.sdsMaterial.FieldByName('tipo_conta').AsString;
end;


E no evento dblclick do grid vampos passar as variaveis para os edits.
Código:
begin
cod.Text:=vcod;
descricao.Text:=vdescricao;
un.Text:=vun;
unitario.Text:=vunitario;
tipo.Text:=vtipo;
end;


Nao sei se funciona, fiz de cabeça, ja fechei o Delphi.

Qualquer coisa post novamente.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gilsonnrodrigues
Moderador
Moderador


Registrado: Quinta-Feira, 14 de Abril de 2005
Mensagens: 9009
Localização: Governador Valadares-MG

MensagemEnviada: Qui Ago 09, 2007 10:16 am    Assunto: Re: Evento OnDblClick do dbgrid não funciona. Porque? Responder com Citação

jpauloss escreveu:
Estou tentando fazer mais não consigo. Quando dou dois clicks as infomações não vão para os edits/dbedits correspondentes. Que faço?

Vai aí o código:

procedure TF_MATERIAIS.DBGrid1DblClick(Sender: TObject);
begin
cod.Text:=dm.sdsMaterial.FieldByName('cod_ordenado').AsString;
descricao.Text:=dm.sdsMaterial.FieldByName('descricao').AsString;
un.Text:=dm.sdsMaterial.FieldByName('un').AsString;
unitario.Text:=dm.sdsMaterial.FieldByName('preco_unitario').AsString;
tipo.Text:=dm.sdsMaterial.FieldByName('tipo_conta').AsString;
end;



pelo menos executa o código?

por exemplo:
oloque o ShowMessage('teste') antes do codigo tipo:


Código:
procedure TF_MATERIAIS.DBGrid1DblClick(Sender: TObject);
begin
   ShowMessage('teste');
{cod.Text:=dm.sdsMaterial.FieldByName('cod_ordenado').AsString;
descricao.Text:=dm.sdsMaterial.FieldByName('descricao').AsString;
un.Text:=dm.sdsMaterial.FieldByName('un').AsString;
unitario.Text:=dm.sdsMaterial.FieldByName('preco_unitario').AsString;
tipo.Text:=dm.sdsMaterial.FieldByName('tipo_conta').AsString;
}
end;


executa o showMessage?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gilsonnrodrigues
Moderador
Moderador


Registrado: Quinta-Feira, 14 de Abril de 2005
Mensagens: 9009
Localização: Governador Valadares-MG

MensagemEnviada: Qui Ago 09, 2007 10:17 am    Assunto: Responder com Citação

pq derepente nem ta executando o ondbclick do dbgrid
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qui Ago 09, 2007 10:45 am    Assunto: Responder com Citação

Realmente pode ser isso mesmo, ou pode vir os dados com atraso na hora de apertar o comando que vc quer.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
jpauloss
Profissional
Profissional


Registrado: Quinta-Feira, 17 de Agosto de 2006
Mensagens: 600
Localização: Salvador - Bahia

MensagemEnviada: Qui Ago 09, 2007 8:47 pm    Assunto: Re: Evento OnDblClick do dbgrid não funciona. Porque? Responder com Citação

gilsonnrodrigues escreveu:
jpauloss escreveu:
Estou tentando fazer mais não consigo. Quando dou dois clicks as infomações não vão para os edits/dbedits correspondentes. Que faço?

Vai aí o código:

procedure TF_MATERIAIS.DBGrid1DblClick(Sender: TObject);
begin
cod.Text:=dm.sdsMaterial.FieldByName('cod_ordenado').AsString;
descricao.Text:=dm.sdsMaterial.FieldByName('descricao').AsString;
un.Text:=dm.sdsMaterial.FieldByName('un').AsString;
unitario.Text:=dm.sdsMaterial.FieldByName('preco_unitario').AsString;
tipo.Text:=dm.sdsMaterial.FieldByName('tipo_conta').AsString;
end;



pelo menos executa o código?

por exemplo:
oloque o ShowMessage('teste') antes do codigo tipo:


Código:
procedure TF_MATERIAIS.DBGrid1DblClick(Sender: TObject);
begin
   ShowMessage('teste');
{cod.Text:=dm.sdsMaterial.FieldByName('cod_ordenado').AsString;
descricao.Text:=dm.sdsMaterial.FieldByName('descricao').AsString;
un.Text:=dm.sdsMaterial.FieldByName('un').AsString;
unitario.Text:=dm.sdsMaterial.FieldByName('preco_unitario').AsString;
tipo.Text:=dm.sdsMaterial.FieldByName('tipo_conta').AsString;
}
end;


executa o showMessage?


Já fiz o teste. Esta executando o ondblclick.
Fiz o que o amigo adriano_servitec citou mas não deu certo.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qui Ago 09, 2007 9:34 pm    Assunto: Responder com Citação

Coloque o codigo direto no oncellclick (DBGrid) entao pra ver se mostra nos edits
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
jpauloss
Profissional
Profissional


Registrado: Quinta-Feira, 17 de Agosto de 2006
Mensagens: 600
Localização: Salvador - Bahia

MensagemEnviada: Qui Ago 09, 2007 10:15 pm    Assunto: Responder com Citação

adriano_servitec escreveu:
Coloque o codigo direto no oncellclick (DBGrid) entao pra ver se mostra nos edits


Ta difícil.... Pego não....

procedure TF_MATERIAIS.DBGrid1CellClick(Column: TColumn);
begin
cod.Text:=vcod;
vdescricao:=descricao.Text;
vtipo:=tipo.Text;
vun:=un.Text;
vpreco:=unitario.Text;

vcod:=dm.sdsMaterialTable.FieldByName('cod_ordenado').AsString;
vdescricao:=dm.sdsMaterialTable.FieldByName('descricao').AsString;
vtipo:=dm.sdsMaterialTable.FieldByName('tipo_conta').AsString;
vun:=dm.sdsMaterialTable.FieldByName('un').AsString;
vpreco:=dm.sdsMaterialTable.FieldByName('preco_unitario').AsString;
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qui Ago 09, 2007 10:25 pm    Assunto: Responder com Citação

jpauloss escreveu:
adriano_servitec escreveu:
Coloque o codigo direto no oncellclick (DBGrid) entao pra ver se mostra nos edits


Ta difícil.... Pego não....

procedure TF_MATERIAIS.DBGrid1CellClick(Column: TColumn);
begin
cod.Text:=vcod;
vdescricao:=descricao.Text;
vtipo:=tipo.Text;
vun:=un.Text;
vpreco:=unitario.Text;

vcod:=dm.sdsMaterialTable.FieldByName('cod_ordenado').AsString;
vdescricao:=dm.sdsMaterialTable.FieldByName('descricao').AsString;
vtipo:=dm.sdsMaterialTable.FieldByName('tipo_conta').AsString;
vun:=dm.sdsMaterialTable.FieldByName('un').AsString;
vpreco:=dm.sdsMaterialTable.FieldByName('preco_unitario').AsString;
end;


Nao assim...passar direto para os edits, sem variavel. Pra podermos ver se esta mostrando certo os campos nos edits quando vc clica em cima do dbgrid
Código:
cod.Text:=dm.sdsMaterial.FieldByName('cod_ordenado').AsString;
descricao.Text:=dm.sdsMaterial.FieldByName('descricao').AsString;
un.Text:=dm.sdsMaterial.FieldByName('un').AsString;
unitario.Text:=dm.sdsMaterial.FieldByName('preco_unitario').AsString;
tipo.Text:=dm.sdsMaterial.FieldByName('tipo_conta').AsString;

_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gilsonnrodrigues
Moderador
Moderador


Registrado: Quinta-Feira, 14 de Abril de 2005
Mensagens: 9009
Localização: Governador Valadares-MG

MensagemEnviada: Sex Ago 10, 2007 12:47 pm    Assunto: Responder com Citação

o caso é q o dataset ligado ao dbgrid não é o mesmo q vc ta tentado recumperar os dados!!
com certeza!!


tente assim:


Código:
procedure TF_MATERIAIS.DBGrid1DblClick(Sender: TObject);
begin
  if Sender = DBGrid1 then
  begin
 with DBGrid1.DataSource.DataSet do
 begin
    cod.Text:=FieldByName('cod_ordenado').AsString;
    descricao.Text:=FieldByName('descricao').AsString;
    un.Text:=FieldByName('un').AsString;
    unitario.Text:=FieldByName('preco_unitario').AsString;
    tipo.Text:=FieldByName('tipo_conta').AsString;
  end;
  end else ShowMessage('Sender não é DBGrid1');
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB