Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FabioRubim

[Resolvido] Desabilitar novo campo no DbGrid ao pressionar <EN

Recommended Posts

Olá pessoal....

como faço para desabilitar a inclusão de um novo registro em um dbgrid quando pressiono enter ou a tecla para baixo?, sem ser usando a manipulação das teclas com os eventos dela,pq vou ter que usar as teclas depois para navegar nos campos de um registro e alterar quantidade na query mesmo...,queria saber se existe alguma propriedade no dbgrid, na AdoQuery, pq no DataSource o AutoEdit como false não adianta.....

 

 

obrigado! http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voce pode salvar o evento e depois atribuir nil na hora q você quiser adicionar um registro, e depois voltar o evento ao lugar.

como exemplo abaixo:

 

var
  Evento : TDataSetNotifyEvent;
begin
  try
	Evento := ClientDataSet.OnNewRecord;
	ClientDataSet.OnNewRecord := nil;
	ClientDataSet.Append;
  finally
	ClientDataSet.OnNewRecord := Evento;
  end;

espero ter ajudado

 

falow

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado thalesoli, vou testar isso por aprendizado, pq acabei fazendo assim, na propriedade Options da DBGrid, em dgEditing coloquei como false, com isso nada é feito no DBGrid, inclusive a mudança de quantidade dos itens, o que eu fiz foi que se a pessoa quiser mais ou menos quantidade de determinado item, ela simplismente inclui o mesmo item(só que a quantidade de acordo com a pessoa) que é apagado o item antigo dos itens do dbgrid e recolocado novamente, só que com a quantia alterada!

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como sugestão você poderia utilizar o evento "beforeInsert" do DataSet(ClientDataSet,AdoTable,Table...) adicionando o comando "abort" apenas. Assim você consegue centralizar o controle de acesso aos dados, que neste caso é evitar o INSERT(antes que ele ocorra) a partir de qualquer componente do tipo Dataware(DBgrid,DBNavigator...).

 

Espero ter contribuido..

Boa sorte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, sei que a intensão foi boa, mas não reviva tópicos já encerrados... o tópico em questão é de 2007, o colega que o abriu já deve ter resolvido a dúvida dele a tempos.

 

Grato,

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.