Executar evento OnChange em ComboBox via mouse
05/01/2006
0
Em minha aplicação, um determinado Form contém um DBGrid que exibe uma listagem de municípios cuja origem dos dados é uma instrução SQL, sendo que a sintaxe da referida consulta sofre alterações (em tempo de execução) de acordo com o conteúdo de uma ComboBox cujos itens são as siglas dos estados brasileiros, de modo que se o usuário especificar, por exemplo, ´SP´, o DBGrid exibirá uma listagem com todas as cidades daquele Estado; para tanto, implementei a codificação adequada no evento OnChange da referida Combo, contudo o processo só é executado corretamente se o usuário alterar o conteúdo do componente via teclado, mas não se selecionar o item pelo mouse. Ao pesquisar o Help do Delphi, fui informado que o evento OnChange não ocorre em Combos do estilo DropDownList (que é exatamente o meu caso), e recomenda o uso do evento OnSelect (que sequer é mencionado no Object Inspector). Cheguei a alterar o Style do componente, mas o problema ainda persiste. Alguém poderia me dizer o que está havendo de errado?
Aproveitando o ensejo, também percebi que após o evento DropDown, as teclas direcionais (setas Acima e Abaixo) não percorrem os itens da Combo. Esse é o comportamento padrão em Combos Delphi? É necessário codificação para executar esta tarefa? Faço tais indagações porque ainda sou inexperiente nesta linguagem de programação.
Desde já, agradeço a atenção dispensada
Spiritwwwalker
Posts
05/01/2006
Caninha51
Eu testei aki com um combobox com a propriedade style como csDropDownList. Povoei os items dele, coloquei uma label no form, e no evento onchange do combobox coloquei pra ele jogar sua propriedade text pro caption da label. Funcionou perfeitamente tanto no mouse como no teclado.
06/01/2006
Spiritwwwalker
Eu utilizava um DBComboBox cujo evento OnChange, não sei porque razão, não ocorria quando um item era selecionado via mouse. Mas segui sua sugestão e substituí o componente para um ComboBox e tudo passou a funcionar perfeitamente. Ocorre, porém, que não demorará muito e serei obrigado a utilizar um DBComboBox, seja nesta, seja em outras aplicações. Tem idéia do motivo dessa anomalia e como sana-la? Agradeço desde já a atenção dispensada.
06/01/2006
Caninha51
Clique aqui para fazer login e interagir na Comunidade :)