Fórum DBComboBox CLX - é só comigo? #295436
14/09/2005
Estou desenvolvendo um projeto usando a biblioteca CLX e tenho uma tela com vários DBEdits e dois DBComboBox. Como são componentes dbaware estão todos ligados com a base de dados no datamodule. Todos componentes funcionam bonitinho, menos as duas DBComboBox. O que acontece é que se eu clicar dentro de uma DBComboBox e depois clicar fora, o Delphi dá uma mensagem de erro ´Not In Edit Mode´ que eu simplesmente não consigo tratar. Isso também acontece se eu acionar o drop-down várias vezes. Estou pensando sériamente em trocar de componente.
Alguém sabe como tratar esse erro ou conhece algum componente similar que funcione bem???
Posts
Qual é o seu DropDownCount ????
A propriedade DropDownCount, no modo de design, inicia com o valor padrão que é 8. Os itens da lista são preenchidos dinamicamente a partir de uma query simples, que está no próprio form. A idéia era listar todas cidades já cadastradas na tabela e deixar disponível pro usuário preencher ou selecionar na lista drop-down.
Como vc trata a opção, quando o usuário insere uma opção, vc dá um add.. ?
se não der, é necessário adicionar na query e dar um ´refresh´ no combo..
pois senão.. continuará a dar este erro.. pois vc tenta adicionar um item na query, mas sem ela estar em modo de inserção..
espero ter ajudado
Não, não uso add. Aliás, essa query não é o dataset principal da tela. A tela é um cadastro de funcionários e o dataset principal está no DataModule. Esta query que eu estou usando simplesmente dá um ´SELECT DISTINCT CIDADE FROM FUNCIONARIO´ e é usada no preenchimento da lista de itens da lista drop-down no evento OnShow e no evento OnDropDown da DBComboBox.
Ou seja, o usuário não cria a lista. Ele simplesmente cadastra funcionários e na hora de preencher o campo cidade, ele pode preencher digitando ou pode escolher na lista drop-down uma das cidades já usadas pelos funcionários cadastrados no sistema anteriormente.
Comentei todo código de todos eventos relacionados à DBComboBox, mas ainda assim o problema persiste. Aliás, desde o início do projeto que notei este problema, antes de codificar qualquer coisa. De todos componente CLX, a DBComboBox parece ser o único que dá este problema. Será que o problema é na CLX? Será que eu perdi alguma atualização? Será o Benedito?
No evento onExit do combo..
coloque isso :
query.insert;
se funcionar o problema não é na .CLX..
Mas aí é que tá. A query não está ligada com a DBComboBox. O dataset da DBComboBox é a tabela de Funcionários que está no DataModule. A query é só uma lista read-only que eu uso pra preencher a lista da DBComboBox. Eu não altero nada na query. A DBComboBox só altera registros da tabela de Funcionários, não altera nada na query.
Será que vc não etá usando o componente errado ??
Não seria melhor usar um LookUpCombo??
acho que não estou te entendendo..
É... talvez fosse melhor usar um DBLookupCombo mesmo... mas ainda assim não justifica o DBComboBox dar pau desse jeito. O que eu estou fazendo é usar um DBComboBox normal e preencher a os itens da lista drop-down usando os registros da query em tempo de execução, só isso.
Mas talvez o DBLookup resolva meu problema. Valeu!