DBComboBox CLX - é só comigo?
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???
Alguém sabe como tratar esse erro ou conhece algum componente similar que funcione bem???
Mordred
Curtidas 0
Respostas
Cabelo
14/09/2005
Qual é o seu DropDownCount ????
GOSTEI 0
Mordred
14/09/2005
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.
GOSTEI 0
Cabelo
14/09/2005
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
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
GOSTEI 0
Mordred
14/09/2005
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?
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?
GOSTEI 0
Cabelo
14/09/2005
No evento onExit do combo..
coloque isso :
query.insert;
se funcionar o problema não é na .CLX..
coloque isso :
query.insert;
se funcionar o problema não é na .CLX..
GOSTEI 0
Mordred
14/09/2005
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.
GOSTEI 0
Cabelo
14/09/2005
Será que vc não etá usando o componente errado ??
Não seria melhor usar um LookUpCombo??
acho que não estou te entendendo..
Não seria melhor usar um LookUpCombo??
acho que não estou te entendendo..
GOSTEI 0
Mordred
14/09/2005
É... 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!
Mas talvez o DBLookup resolva meu problema. Valeu!
GOSTEI 0