Fórum Como Desabilitar o Click Com o Mouse No DbGrid #255355
21/10/2004
0
Marco Salles
Curtir tópico
+ 0Posts
21/10/2004
Milk
dgediting para False.
Talves de certo.
Gostei + 0
21/10/2004
Crpavao
Gostei + 0
21/10/2004
Marco Salles
Isto nao impede que o registro aberto , seje salvo ..Apenas impede que se pode editar nos campos da Grade do DbGrid
Isto nao impede que o registro aberto , seje salvo ..Apenas impede que se pode editar nos campos da Grade do DbGrid
o que eu estou querendo de fato e desabilitar o click do mouse sobre o Grid..ou algo similar que impeça que ao clicar sobre a grid o registro aberto (inserido) fique na mesma posição..
Gostei + 0
21/10/2004
Marco Salles
Gostei + 0
21/10/2004
Fcinto
IF SUAQUERY.STATE IN [DSEDIT, DSINSERT]
THEN ABORT;
Gostei + 0
21/10/2004
Marco Salles
eu acredito, pelos testes preliminares que eu fiz, que o código acima , para o meu caso infelismente nao irá funcionar..A razão é que no mesmo formulário, onde tem este [b:e9b82e03ab]GRID[/b:e9b82e03ab], tem tb outros controles conscientes de dados e um [b:e9b82e03ab]BOTAO[/b:e9b82e03ab], aonde após analisar criteriosamente os dados inseridos , eu Salvo ou nao na Base de Dados...
Ao Colocar este código , eu nao consigo mais gravar na minha Base De Dados Via Programação Normal . pq este evento não é intríseco do [b:e9b82e03ab]DbGrid[/b:e9b82e03ab], ele é disparado independendemente de se ter um DbGrid Ou Não no Formulário...O Nome desse evento e Sugestivo, mas ele ocorre independentemente de se ter ou nao uma barra de Rolagem no Formulário...O Simples código no Botão
procedure TForm1.Button1Click(Sender: TObject); begin table1.next; end;
[b:e9b82e03ab]é suficiente parar disparar este evento, tendo ou nao um DbGrid No Formulário[/b:e9b82e03ab]
Não sei se fui claro...Obrigado
Gostei + 0
21/10/2004
Crpavao
Gostei + 0
22/10/2004
Fcinto
no evendo OnStateChange do seu DataSource coloque o seguinte código:
Dbgrid1.Enabled := not (DataSource1.State in [dsInsert, dsEdit]);
assim quanto estiver alterando ou inserindo fica desabilidado, após gravar o State muda e fica habilitado novamente.
Gostei + 0
22/10/2004
Fcinto
no evendo OnStateChange do seu DataSource coloque o seguinte código:
Dbgrid1.Enabled := not (DataSource1.State in [dsInsert, dsEdit]);
assim quanto estiver alterando ou inserindo fica desabilidado, após gravar o State muda e o dbgrid fica habilitado novamente.
Gostei + 0
22/10/2004
Marco Salles
Isto e uma outra idéia....so que no meu caso, a mesma tela(Formulário) de inserção de Dados [b:3af47a396b]e a mesma[/b:3af47a396b], onde esta localizado o DbGrid...Pq eu nao mudo???Pq ja constroi a minha estrutura toda assim....
Dbgrid1.Enabled := not (DataSource1.State in [dsInsert, dsEdit]);
Sem sombra de dúvida.Um tiro certeiro...Só com algumas modificações..Ja que tenho vários formulários, e o formulário que contém o DbGrid nao e o Mesmo que Abre a tabela, o que da um ERRO de Execução(Pois , quando ocorre este evento o meu Grid Nen Foi Criado Ainda...)Mas isto nao e Problema, pq eu uso a idéia para coloca-la na posição quem melhor me convir no meu código...
Exemplo:::
Quando "abro" um registro..Num evento onclick de um botao DbDrid1.Enabled:=False; Quando Cancelo um operação.....Num evento onclick de um botao DbGrid1.Enabled:=True; Quando Salvo as Alteraçoes.......Num evento onclick de um botao DbGrid1.Enabled:=True;
Mas agora so ha título de curiosidade, será que ninguem conhece , manipulando as mensagems do Windows, Ou sei la o que , desativar o click do Mouse sobre o DbGrid :?: :?: :?:
Agradeço a todos que contribuiram com suas sugestões sobre este tópico...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)