Fórum Limpar buffer de entrada #277261
14/04/2005
0
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
Curtir tópico
+ 0Posts
14/04/2005
Beppe
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
15/04/2005
Hjpezzo
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
15/04/2005
Kapak
Gostei + 0
15/04/2005
Hjpezzo
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
Clique aqui para fazer login e interagir na Comunidade :)