Sur le redimensionnement… Sur le redimensionnement… Sur le redimensionnement… Sur le redimensionnement…

Traduit automatiquement de Deepl

Vous vous demandez comment créer une interface utilisateur agréable et dynamique ? En général, lorsqu’un formulaire est redimensionné, les objets du formulaire dont les propriétés de dimensionnement horizontal ou vertical sont définies pour se déplacer ou s’agrandir, sont automatiquement redimensionnés. Dans certains cas (par exemple, pour une gestion plus fine de l’interface utilisateur), les développeurs choisissent de gérer la taille et la position des objets du formulaire par programmation. Pour ce faire, ils vérifient l’événement « on resized » qui est déclenché dans la méthode du formulaire. Mais que se passe-t-il lorsque le formulaire contient un ou plusieurs sous-formulaires ? Sur plusieurs niveaux ? Cet article de blog vous donne les réponses !

Sous-formulaires, sous-sous-formulaires et…

La gestion des objets sous-formulaires lorsque l’objet sous-formulaire « parent » est redimensionné peut sembler compliquée, mais ce n’est pas le cas ! Cela peut être fait soit en utilisant la commande Execute method in subform, soit en modifiant la valeur associée de l’objet sous-formulaire, puis – à l’intérieur du sous-formulaire – en gérant l’événement on bound variable change généré.

A partir de 4D v18, c’est encore plus simple ! Vous pouvez gérer directement l’événement on resize dans la méthode du sous-formulaire ! Beaucoup plus pratique, logique et facile ! Cet événement sera déclenché chaque fois que la taille de l’objet sous-formulaire sera modifiée dans le formulaire principal. Cela peut se produire lorsque :

  • le formulaire principal est redimensionné (ainsi que l’objet subform). C’est le cas le plus évident.
  • un splitter modifie la hauteur ou la largeur de l’objet sous-formulaire. Ce n’est pas aussi évident, mais cela vaut la peine de le mentionner.
  • la taille d’un objet sous-formulaire est modifiée par programmation à l’aide de la commande OBJECT SET COORDINATES. Ce cas est encore moins évident, ne l’oubliez pas 🙂

Conclusion

Si vous gérez déjà ce genre de scénarios dans votre application, vous pouvez envisager de simplifier votre code (ou pas ! « If it ain’t broke, don’t fix it »). Mais pour les développements futurs, vous apprécierez cette simplification de la gestion des événements !

Roland Lannuzel
- Product Owner & 4D Expert - Après avoir étudié l'électronique, Roland s'est lancé dans l'informatique industrielle en tant que développeur et consultant, créant des solutions pour les clients avec une variété de bases de données et de technologies. À la fin des années 80, il est tombé amoureux de 4D et l'a utilisé pour écrire des applications commerciales, notamment des systèmes de comptabilité, de facturation et de messagerie électronique. Il a rejoint la société en 1997 et a contribué à la conception de spécifications, d'outils de test et de démonstrations, ainsi qu'à la formation et à la présentation de la communauté 4D lors de nombreuses conférences. Il continue à façonner activement l'avenir de 4D en définissant de nouvelles fonctionnalités et des outils de développement de bases de données.