Utilisation des vues FireMonkey

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Conception d'applications FireMonkey

Les vues sont un mécanisme qui vous permet de définir une disposition différente et des composants pour les fiches de votre application en fonction du périphérique sur lequel votre application est exécutée.

Les nouvelles fiches contiennent initialement une vue unique : la vue maître, nommée par défaut unit1.fmx.

  • Vous pouvez ajouter des vues supplémentaires à votre application si vous voulez fournir des vues différentes sur des périphériques différents.
    Nous vous recommandons de créer des vues pour les types de périphérique représentatifs courants, par exemple une vue pour téléphone et une vue pour tablette, et non pas une liste exhaustive de vues dans le sélecteur de vue.


MultipleViews.png

Héritage des vues

Toutes les vues supplémentaires que vous ajoutez à votre projet héritent des composants et des propriétés de la vue maître.

Quand vous ajoutez ou retirez des composants à partir de la vue maître, le Concepteur de fiches répercute cette modification dans toutes les vues existantes. Vous pouvez uniquement ajouter ou retirer des composants à partir de la vue maître ; vous ne pouvez pas ajouter ou retirer des composants à partir d'une autre vue. Si vous souhaitez qu'un composant apparaisse uniquement sur certaines vues, masquez ce composant sur toutes les autres vues.

Quand vous modifiez les propriétés de votre fiche ou de l'un de ses composants sur la vue maître, le Concepteur de fiches répercute aussi ces changements à toutes les vues existantes, sauf si cette vue a déjà spécifié une valeur différente pour cette propriété. Vous pouvez personnaliser les valeurs des propriétés sur une vue particulière pour remplacer la valeur de la vue maître uniquement sur la vue candidate.

Restauration des valeurs des propriétés d'un composant à partir de la vue maître

Pour restaurer les valeurs des propriétés à partir de la vue maître sur un composant d'une autre vue :

  1. Sélectionnez la vue candidate dans le sélecteur de vue.
  2. Sur le Concepteur de fiches, cliquez avec le bouton droit sur le composant cible.
  3. Sélectionnez Revenir aux valeurs héritées dans le menu contextuel.

Toutes les propriétés du composant sélectionné reprennent la valeur qu'elles ont dans la vue maître.

Masquage d'un composant

Vous ne pouvez pas retirer un composant d'une vue, mais vous pouvez le masquer.

Pour masquer un composant sur une vue particulière :

  1. Sélectionnez le composant.
  2. Dans l'inspecteur d'objets, définissez la propriété Visible sur False.

Pour masquer un composant pour une plate-forme cible spécifique, utilisez du code conditionnel dans l'éditeur de code :

Object Pascal :

{$IFDEF ANDROID}
    SpeedButton1.Visible := False;
{$ENDIF}
C++ :
#if defined(__ANDROID__) && defined(__arm__)
    SpeedButton1->Visible = false;
#endif

Vous pouvez exécuter ce code à partir d'un gestionnaire d'événement associé à l'événement OnCreate de votre fiche, par exemple. Comme vous modifiez la visibilité du composant à l'exécution, le composant est toujours visible sur le Concepteur de fiches.

Algorithme de chargement des vues

Quand vous exécutez votre application sur un périphérique, FireMonkey évalue les vues définies dans votre application et les répertorie par priorité. La liste inclut uniquement les vues sur lesquelles la plate-forme est la même que celle sur laquelle votre application s'exécute, et la priorité de chaque vue de la liste est déterminée en fonction des critères suivants, de la priorité la plus haute (1) à la priorité la plus basse :

Priorité Exigences

1

  • La diagonale de l'appareil sur lequel s'exécute votre application se trouve dans la plage de diagonales de la vue candidate : [diagonale minimale, diagonale maximale].
  • Parmi les limites de diagonale de toutes les vues, celle de la vue candidate est la plus proche de la diagonale du périphérique sur lequel votre application s'exécute.
  • La classe de périphérique de la vue candidate est la même que celle du périphérique sur lequel votre application s'exécute.

2

  • La diagonale de l'appareil sur lequel s'exécute votre application se trouve dans la plage de diagonales de la vue candidate : [diagonale minimale, diagonale maximale].
  • Parmi les limites de diagonale de toutes les vues, celle de la vue candidate est la plus proche de la diagonale du périphérique sur lequel votre application s'exécute.
  • La classe de périphérique de la vue candidate est différente de celle du périphérique sur lequel votre application s'exécute.
  • La vue candidate n'est pas exclusive.

3

Remarque : Les vues avec ce niveau de priorité sont triées en fonction de l'écart entre la moyenne des limites de diagonale de la vue candidate (par exemple, 5 si la diagonale minimale est 4 et la diagonale maximale est 6) et la diagonale du périphérique sur lequel votre application s'exécute. Les vues avec l'écart le plus faible ont une priorité plus haute.

FireMonkey charge la première vue de la liste. Si aucune des vues ne correspond aux exigences, FireMonkey charge la vue maître à la place.

Vous pouvez trouver tous les détails concernant les vues intégrées de Appmethod dans les implémentations spécifiques à la plate-forme de l'unité System.Devices : System.Android.Devices.pas, System.Win.Devices.pas, et ainsi de suite.

Plages de tailles des périphériques pour chaque vue Android

Les plages de tailles permettent de déterminer quelle vue utiliser dans une app Android. Le tableau suivant affiche les plages de taille minimale et maximale pour chaque vue indiquée dans des coordonnées paysage. Notez que l'exécutable n'a pas besoin d'une correspondance exacte pour sélectionner une vue. L'exécutable sélectionne celle qui correspond le mieux.

Nom de la vue Taille minimale
(en pixels)
Taille maximale
(en pixels)
PPI

Téléphone Android 3,5 pouces

800 x 500

1000 x 600

320

Téléphone Android 4 pouces

1168 x 730

1360 x 850

320

Téléphone Android 5 pouces

1440 x 900

1708 x 960

320

Tablette Android 7 pouces

1708 x 960

1920 x 1200

320

Tablette Android 10 pouces

2400 x 1500

2560 x 1600

320

Les noms des fiches sont différents à l'exécution

A l'exécution, la propriété Name des fiches de votre application peut ne pas correspondre aux noms que vous avez définis à la conception. Si FireMonkey charge une autre vue que la vue maître, les noms des fiches sont ceux que vous avez donnés aux fiches dans la vue maître, plus le nom de code de la vue chargée, séparés d'un caractère de soulignement (_). Par exemple, si le nom de votre fiche est "MaFiche" et si FireMonkey charge la vue "Bureau Windows" à l'exécution, le nom de votre fiche à l'exécution est "MaFiche_Windows".

Vous ne pouvez pas créer des vues avec des composants sans nom

Avant de créer une nouvelle vue pour votre projet, vous devez vérifier que tous les composants de votre projet ont un nom.

Si vous ouvrez une application multi-périphérique avec une ou plusieurs vues contenant des composants sans nom, Appmethod affiche le message d'erreur suivant :

 Cannot inherit from form <form name>.  It contains a component with a blank name property.

Rubriques

Voir aussi