DbComboBox evento onChange

Delphi

07/08/2006

Bom dia!

Estou tendo dificuldade com o evento onChange de um dbComboBox, vou tentar explicar o que estou precisando fazer.
Tenho em meu sistema um cadastro de cliente, na minha tabela tenho os seguintes campos:

QTDFILHOS - INTEGER
NOMEFILHO1 - VARCHAR
NOMEFILHO2 - VARCHAR
NOMEFILHO3 - VARCHAR

Liguei o campo QTDFILHOS ha um dbComboBox e na propriedade [Itens] eu coloquei os seguintes itens para a quantidade de filhos:

0
1
2
3

E os campos NOMEFILHO1, 2 e 3 liguei a um dbEdit com a propriedade visible := false;

O que eu preciso?
Quando o usuario estiver editando o cadastro e escolher uma das quatro opções alterar a propriedade visible := true dos dbEdit´s. Exemplo: se o usuario escolher a opção 2 mostra os dbEdit´s referente aos campos NOMEFILHO1 e 2

Até aqui tudo bem, ja fiz e esta funcionando, coloquei o codigo para mostrar ou esconder os controles no evendo onChange do dbComboBox.

O meu problema é quando o usuario localiza um cliente ja cadastrado, a partir de uma tela para localizar cliente. Quando abre o cadastro o envento onChange do dbComboBox não é disparado ...

Alguem saberia como posso resolver isso pra nao ter que fazer nenhuma gambiarra ???

Grato pela atenção!!!


Mmoreira

Mmoreira

Curtidas 0

Respostas

Jáder Medeiros

Jáder Medeiros

07/08/2006

O evento OnChange da classe TDBComboBox é herdado da classe TCustomCombo mas não é implementada. Ou seja, se você está percorrendo um DataSet, esse evento não é disparado.

Para fazer o que você quer, o que fez já é gambiarra. O correto é você utilizar o evento OnDataChange do DataSource em que o seu Combo está ligado.

Simplesmente passe todo o procedimento do evento OnChange do TDBComboBox que você fez para o evento OnDataChange do TDataSource ligado ao seu combo.


GOSTEI 0
Mmoreira

Mmoreira

07/08/2006

Jader,

Blz cara com sua dica resolvi meu problema.

Valew


GOSTEI 0
Martins

Martins

07/08/2006

Jader, Blz cara com sua dica resolvi meu problema. Valew


O Marcelo, o q vc está desenvolvendo dessa vez?


Ainbda bem q já conseguiu solucionar esse problema.

Abraços!


GOSTEI 0
POSTAR