GARANTIR DESCONTO

Fórum Limpar buffer de entrada #277261

14/04/2005

0

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á.


Hjpezzo

Hjpezzo

Responder

Posts

14/04/2005

Beppe

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)


Responder

Gostei + 0

15/04/2005

Hjpezzo

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


Responder

Gostei + 0

15/04/2005

Kapak

Não seria somente vc desabilitar o evento onColumnClick qdo vc mostra o segundo grid e reativá-lo depois ?


Responder

Gostei + 0

15/04/2005

Hjpezzo

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..


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar