Atualizar campos fields dentro de um lookuptable
Estou criando um componente e tenho uma dúvida, pois tenho a propriedade lookuptable que é atualizado na procedure setlookuptable que ao atualizar é atualizado tbem outra propriedade do tipo TStringlist, aonde jogo os field dessa tabela. Minha dúvida é qual a melhor maneira de atualizar essa Tstringlist, por exemplo se altera o LookupTable com outra tabela ou outra query eu limpo e atualizo do começo, mas se por acaso essa tabela ou query for incluído ou deletado um campo como devo proceder para atualizar o mais simples possível.
Acacio
Curtidas 0
Respostas
Ildefonso
25/02/2004
Olá, Acacio.
É um combo-box que você está criando?
Eu vim do Access (muita gente acredita que não é possível produzir programação pesada e descente com ele, mas ele é muito poderoso em várias coisas) e ainda sofro com os componentes do Delphi. Principalemtne com os list e combo boxes.
Já imaginei um combo ou list mais dinâmico, e passei a olhar a possibilidade de colocar um TDBGrid como apresentador dos dados.
Mesmo assim, modificações em outras fontes de dados que não sejam ligadas diretamente a ele poderiam manipular informações sem a devida ciência (no sentido de estar ciente de...) da base de dados do componente.
Simplesmente disparar um .Refresh de tempos em tempos é temerário, quanto a recursos e lentidão. Talvez - e estou só especulando - haja como interceptar as mensagens de todos os componentes de dados do Delphi, tal como é possível interceptar todas as mensagens de Paint dos descendentes do TWinControl. Assim você verificaria se estão mechendo com as tabelas que formam os dados de seu componente.
Por outro lado, acho que a melhor política é você disponibilizar um .Refresh para seu próprio componente, deixando a responsabilidade de atualizações para os usuários.
Bom trabalho. 8)
É um combo-box que você está criando?
Eu vim do Access (muita gente acredita que não é possível produzir programação pesada e descente com ele, mas ele é muito poderoso em várias coisas) e ainda sofro com os componentes do Delphi. Principalemtne com os list e combo boxes.
Já imaginei um combo ou list mais dinâmico, e passei a olhar a possibilidade de colocar um TDBGrid como apresentador dos dados.
Mesmo assim, modificações em outras fontes de dados que não sejam ligadas diretamente a ele poderiam manipular informações sem a devida ciência (no sentido de estar ciente de...) da base de dados do componente.
Simplesmente disparar um .Refresh de tempos em tempos é temerário, quanto a recursos e lentidão. Talvez - e estou só especulando - haja como interceptar as mensagens de todos os componentes de dados do Delphi, tal como é possível interceptar todas as mensagens de Paint dos descendentes do TWinControl. Assim você verificaria se estão mechendo com as tabelas que formam os dados de seu componente.
Por outro lado, acho que a melhor política é você disponibilizar um .Refresh para seu próprio componente, deixando a responsabilidade de atualizações para os usuários.
Bom trabalho. 8)
GOSTEI 0