Fórum Forçar um setText #409203

09/11/2011

0

Estou usando Delphi 7, ClientDataSet e DBEdit.
Tenho um ClientDataSet com 3 campos:

Estado, Municipio, Populacao:

O funcionamento do programa é acessar o dbedit do estado, dbedit do municipio e apresentar a populacao.

No evento onSetText do campo municipio eu faço a consulta no banco de dados.
Funcionando sem problema algum.

O problema acontece quando estou no dbedit do municipio, ja coloquei o codigo e retorno para alterar o dbedit do campo estado. Ao passar pelo Dbedit do municipio ele não executa o SetText por que não foi alterado o valor dele.
Ex: Estado : SP
Municio: Sao Paulo
Populacao: 150000

Vou no Campo Estado e mudo para RS por exemplo e passo pelo campo Municipio ele nao executa o metodo SetText.

Alguem conhece alguma maneira de sempre executar o SetText, mesmo que não tenha alterado o valor do campo. (Sem ser pelo OnExit do DBEdit).

Grato

Tone

Tone Costa.

Tone Costa.

Responder

Posts

09/11/2011

Wilson Junior

Faça uma rotina para validar o Estado e o Município, sendo chamado pelo evento OnSeteText do Estado e do Município.

Espero ter colaborado.
Responder

Gostei + 0

09/11/2011

Tone Costa.

Obrigado, era bem isso que nao queria fazer,

na verdade, pelas minhas pesquisas, precisaria alterar o metodo datachange do dbedit, só que ele esta na private, nao conseguindo acessa-lo no meu componente,
vou estudar um pouco mais, para forçar o dbedit a atualizar essa informacao.

Responder

Gostei + 0

09/11/2011

Joel Rodrigues

Uma possibilidade:
usar o evento AfterScroll dos datasets Estado e Município para calcular a população e exibí-la.

Outra possibilidade:
a população encontra-se em uma tabela relacionada com o município através de uma chave estrangeira? Em caso positivo, você pode ligar o dataset População ao dataset Município através da propriedade DataSource para que sempre que um município for selecionado, a população seja atualizada.

Seria isso...?
Responder

Gostei + 0

09/11/2011

Joel Rodrigues

É... acho que não respondi bem tua pergunta, né?
Valeu a intenção.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar