Oct 17 2006

Comportamento dos eventos OnExit e OnClick

Autor: Marcos Dell Antonio - Categorias: Delphi

Depois de alguns testes utilizando o componente TComboEdit do Delphi 6, descobri comportamentos diferentes para situações parecidas.

O foco dos testes foi verificar a execução do evento OnExit de um ComboEdit antes do OnClick de três tipos de botões: TBitBtn, TSpeedButton e TToolButton.

A figura abaixo representa melhor o problema:

A dúvida: ao sair do ComboEdit clicando diretamente sobre um dos três botões, qual evento será executado: o OnClick do botão clicado ou o OnExit do ComboEdit?

A resposta: depende do botão clicado.

Ao clicar no ToolButton (indicado como Toolbar na figura) ou no SpeedButton, o evento disparado é o OnClick. Parece estranho, mas nenhum desses dois botões pode receber foco, por isso se um deles for clicado, o OnClick é disparado e o OnExit não será chamado, pois o foco permanecerá no ComboEdit.

Já se o botão clicado for o BitBtn, o evento OnExit do ComboEdit será executado e o BitBtn receberá o fóco.

A princípio isso não deveria acarretar em um grande problema. Entretanto, se existir uma implementação no OnExit do ComboEdit que deve ser executada antes do OnClick do ToolButton, certamente vai dar pau!

É isso ae! T+ :D

Adicione ao del.icio.us del.icio.us | Adicione ao Rec6 Rec6

Faça um comentário