Evolution du Z-Order des composants FireMonkey sous Android avec Delphi 10.3 Rio

Comme pour mes autres articles concernant Delphi 10.3 Rio, j'ai l'autorisation d'Embarcadero de rompre les règles de confidentialité dès lors que quelqu'un du staff donne quelques informations officielle sur la prochaine version de Delphi. Aujourd'hui je profite que Jim McKeeth dévoile des choses sur Android pour en parler à mon tour.

Contrairement à la VCL où il existe des composants conteneurs et d'autres composants, FireMonkey propose une hiérarchie de composants où ils sont tous potentiellement conteneurs d'autres composants visuels. Ca permet de faire très simplement des interface utilisateur très complexes mais il y a parfois un hic.

Le hic, c'est quand des composants passent par les API natives pour afficher quelque chose ce qui est le cas des pages web et des vidéos.

Jusqu'à présent on ne pouvait rien afficher par dessus une zone d'affichage de page web ou le media player fourni. Vous me direz qu'il y a peu de raisons de mettre des trucs par dessus une vidéo ou devant une page web puisque le but de ces composants est d'afficher ce qu'ils contiennent... et vous n'aurez pas totalement tord.

Pour gérer les menus dans les applications mobiles on utilise en général un truc généralisé depuis l'application de Facebook il y a quelques années : un bouton qui ouvre un panel depuis le côté gauche de l'écran et qui contient des liens vers d'autres fonctionnalités. Sous Delphi nous avons le composant TMultiView qui permet d'effectuer cette action. On le lie à un bouton quelque part dans l'interface et il ouvre ou ferme le panneau.

Quand on faisait une application contenant des vidéos, pour de la formation, du visionnage de vidéos en ligne ou autres, ou même une application qui se servait du navigateur intégré pour afficher des pages web ou tout bonnement des documents HTML stockés dans l'application, on se retrouvait jusque là avec un menu qui passait derrière le composant browser ou media player. Très peu commode et ergonomique, vous en conviendrez.

Les changements dans la gestion du Z-Order pour Android vont changer ce fonctionnement.

Sous réserve que les fonctionnalités des versions beta soient bien toutes intégrées à la version finale, nous allons avoir un certain nombre de composants permettant de passer par dessus les composants qui jusque là prenaient le pas sur tous les autres. Il suffira de jouer sur la propriété ControlType et les passer en "Platform" pour qu'ils soient gérés en partie par l'OS pour leur affichage.

De plus Embarcadero continue à faire évoluer ses composants et proposera désormais de nouveaux composants gérés entièrement par l'OS (mais du coup on ne pourra plus leur appliquer les styles FMX si on opte pour cette option). C'est notamment le cas du TEdit qui va ainsi bénéficier de toutes les fonctionnalités natives du clavier et des simplifications de saisie dont l'autocorrection et la suggestion de mots.

Ces changements comme beaucoup d'autres vous seront montrés le 15 novembre à Paris lors de la journée de lancement de Delphi 10.3 Rio. Inscrivez-vous sans tarder pour venir voir tout ça et pouvoir en discuter en direct.


Mug Chinese New Year 2023 : year of the rabbitMug Toucan DX dans la baie de Rio