Limpar buffer de entrada
Senhores
Tenho um form com um grid em que, caso clique no título da coluna, faço a ordenação dos dados pelo campo selecionado.
A partir deste form chamo um outro form que tenho um grid que inseri um evento para que quando clico duas vezes na linha, o sistema assume que foi clicado no botão confirmar, fecha este form e retorna o controle para o form anterior, preechendo determinado campo.
O meu problema está na seguinte situação. Caso o grid do 2o. form chamado fique sobre o grid do form principal e a linha selecionada pelos dois cliques esteja na mesma posição vertical da linha de título do grid do principal o sistema assume os dois cliques, porém também registra que houve um clique no título do principal quando fechada a 2a. janela.
Há alguma forma para que eu possa limpar o buffer de entrada para que após registrado os dois cliques seja limpo e não assuma o outro clique do nada?
Agradeço desde já.
Tenho um form com um grid em que, caso clique no título da coluna, faço a ordenação dos dados pelo campo selecionado.
A partir deste form chamo um outro form que tenho um grid que inseri um evento para que quando clico duas vezes na linha, o sistema assume que foi clicado no botão confirmar, fecha este form e retorna o controle para o form anterior, preechendo determinado campo.
O meu problema está na seguinte situação. Caso o grid do 2o. form chamado fique sobre o grid do form principal e a linha selecionada pelos dois cliques esteja na mesma posição vertical da linha de título do grid do principal o sistema assume os dois cliques, porém também registra que houve um clique no título do principal quando fechada a 2a. janela.
Há alguma forma para que eu possa limpar o buffer de entrada para que após registrado os dois cliques seja limpo e não assuma o outro clique do nada?
Agradeço desde já.
Hjpezzo
Curtidas 0
Respostas
Beppe
14/04/2005
O meu problema está na seguinte situação. Caso o grid do 2o. form chamado fique sobre o grid do form principal e a linha selecionada pelos dois cliques esteja na mesma posição vertical da linha de título do grid do principal o sistema assume os dois cliques, porém também registra que houve um clique no título do principal quando fechada a 2a. janela.
Faça uma chamada para Application.ProcessMessages; logo no início do manipulador de eventos do duplo clique(ou seja qual for o evento que usa)
GOSTEI 0
Hjpezzo
14/04/2005
Já utilizei o ProcessMessages em todos os processos seguintes do sistema, seja logo no evento ondblclick, no botão confirmar, no retorno do 2o. form....
Porém em nenhum local funcionou.. o sistema continua com o mesmo comportamento.
De qualquer forma, agradeço pela força.
Continuo aguardando..
Abraços
Porém em nenhum local funcionou.. o sistema continua com o mesmo comportamento.
De qualquer forma, agradeço pela força.
Continuo aguardando..
Abraços
GOSTEI 0
Kapak
14/04/2005
Não seria somente vc desabilitar o evento onColumnClick qdo vc mostra o segundo grid e reativá-lo depois ?
GOSTEI 0
Hjpezzo
14/04/2005
Senhores
Primeiramente, obrigado a todos que ao menos leram esta mensagem.
Após muitas tentativas de habilitar e desabilitar controles, sem sucesso, acabamos localizando onde tudo é originado.. o evento de controle dos cliques do mouse no objeto TControl.
Fomos rastreando e vimos que eram alguns eventos que os próprios componentes do Delphi executam que acabam ocasionando este tipo de problema.
Fizemos alguns testes e conseguimos ´contornar´ a situação desenvolvendo nosso código de uma forma diferente, utilizando outros eventos para simular o dblclick do grid e retornar corretamente os valores para o grid principal.
Assim, conseguimos ajustar o processamento do sistema sem utilizar os eventos padrões do Delphi e zerar a parada toda..
Grande abraço a todos..
Primeiramente, obrigado a todos que ao menos leram esta mensagem.
Após muitas tentativas de habilitar e desabilitar controles, sem sucesso, acabamos localizando onde tudo é originado.. o evento de controle dos cliques do mouse no objeto TControl.
Fomos rastreando e vimos que eram alguns eventos que os próprios componentes do Delphi executam que acabam ocasionando este tipo de problema.
Fizemos alguns testes e conseguimos ´contornar´ a situação desenvolvendo nosso código de uma forma diferente, utilizando outros eventos para simular o dblclick do grid e retornar corretamente os valores para o grid principal.
Assim, conseguimos ajustar o processamento do sistema sem utilizar os eventos padrões do Delphi e zerar a parada toda..
Grande abraço a todos..
GOSTEI 0