A pensar como criar uma interface de utilizador agradável e dinâmica? Normalmente, quando um formulário é redimensionado, os objectos do formulário cujas propriedades de dimensionamento horizontal ou vertical são definidas para se mover ou crescer, são automaticamente redimensionados. Em alguns casos (por exemplo, gestão mais fina da interface de utilizador), os programadores optam por gerir o tamanho e a posição dos objectos de formulário por programação. Para o fazer, verificam o evento “no redimensionamento” que é desencadeado dentro do método do formulário. Mas o que acontece quando o formulário contém um ou mais subformulários? A muitos níveis? Este post no blog dá-lhe as respostas!
subformulários e sub-subformulários e…
Gerir objectos subforma quando um objecto subforma “pai” é redimensionado pode parecer complicado, mas não é! Pode ser feito usando o comando Execute method in subform ou modificando o valor associado do objecto de subforma, seguido – dentro da subforma – pela gestão do evento on bound variable change gerado.
Começando com 4D v18, é ainda mais simples! É possível gerir directamente o evento on resize no método de subforma! Muito mais conveniente, lógico, e fácil! Este evento será desencadeado cada vez que o tamanho do objecto da subforma for modificado na forma principal. Isto pode acontecer quando:
- o formulário principal é redimensionado (assim como o objecto subforma). Este é o caso mais óbvio.
- um divisor modifica a altura ou a largura do objecto da subforma. Não é tão óbvio, mas vale a pena mencionar.
- o tamanho de um objecto de subforma é modificado através da programação usando o comando OBJECT SET COORDINATES. Este caso é ainda menos óbvio, não o esqueça 🙂
Conclusão
Se já gere este tipo de cenários na sua aplicação, pode considerar simplificar o seu código (ou não! “Se não estiver partido, não o conserte”). Mas para desenvolvimentos futuros, irá apreciar esta simplificação da gestão de eventos!