Começando com 4D v19 R5, a capacidade de associar uma variável a uma subforma enriqueceu as possibilidades de interfaces e comunicação entre formulários e subformas. Os meios de comunicação são agora simplificados por dois novos comandos: Diga olá a OBJECT Get subform container value e OBJECT SET SUBFORM CONTAINER VALUE.
Melhorar a comunicação entre formulários e subformas
Dois novos comandos
Os novos comandos OBJECT Get subform container value e OBJECT SET SUBFORM CONTAINER VALUE devem ser utilizados no contexto da subforma.
O primeiro – OBJECT Get subform container value será mais frequentemente utilizado quando for gerado um evento On Bound Variable Change, ou seja, após a variável (ou a expressão) associada à subforma do formulário pai ser modificada. Por conseguinte, é utilizado para ler este novo valor.
O segundo – OBJECT SET SUBFORM CONTAINER VALUE será utilizado se, a partir do subforma, se desejar modificar o valor da variável (ou expressão) associada ao subforma no formulário pai.
Porquê estes comandos?
Até agora, existiam duas formas de obter esta informação.
A forma mais simples(e mais recente) é associar uma variável do tipo objecto com a subforma. Neste caso, os atributos deste objecto são acessíveis directamente através da função Form dentro da subforma. Isto funciona bem, mas utilizar um objecto quando é necessário um valor simples não é necessariamente uma boa prática.
A segunda forma(mais histórica) é criar um ponteiro para a variável em questão através do comando OBJECT Get pointer com o parâmetro Object subform container. Isto funciona, mas apenas quando um variable está associado a subformas. Infelizmente, isto não é possível quando se trata de um expression (por exemplo, Form.myValue), porque não é possível criar um ponteiro para uma expressão.
Portanto, estes dois comandos representam a solução mais conveniente e directa para casos simples! Irá simplificar a programação dos casos mais comuns. O código será mais legível e mais fácil de manter.
Desfrute da programação com 4D!