Ajout d'une vue personnalisée au sélecteur de vue
Remonter à Utilisation des vues FireMonkey
Vous pouvez créer et ajouter de nouvelles vues au sélecteur de vue dans le Concepteur de fiches si les vues disponibles ne couvrent pas les spécifications de votre périphérique cible.
Sommaire
Spécifications d'affichage pour les vues disponibles
Vue | Fichier | MinPhysicalSize | MaxPhysicalSize | MinLogicalSize | MaxLogicalSize | PPI |
---|---|---|---|---|---|---|
Bureau Windows |
System.Win.Devices |
|||||
Surface Pro |
System.Win.Devices |
|||||
Téléphone Android 3,5 pouces |
System.Android.Devices |
(800,500) |
(1000,600) |
(400,250) |
(500,300) |
320 |
Téléphone Android 4 pouces |
System.Android.Devices |
(1280,800) |
(1360,850) |
(640,400) |
(680,425) |
320 |
Téléphone Android 5 pouces |
System.Android.Devices |
(1708,960) |
(1920,1200) |
(854,480) |
(960,600) |
320 |
Tablette Android 7 pouces |
System.Android.Devices |
(1708,960) |
(1920,1200) |
(854,480) |
(960,600) |
320 |
Tablette Android 10 pouces |
System.Android.Devices |
(2400,1500) |
(2560,1600) |
(1200,750) |
(1280,800) |
320 |
Google Glass |
System.Android.Devices |
(640,360) |
(640,360) |
(427,240) |
(427,240) |
30 |
Sony SmartWatch 3 |
System.Android.Devices |
(320,320) |
(240,240) |
283 | ||
Motorola Moto 360 |
System.Android.Devices |
(320,290) |
(240,218) |
205 | ||
iPhone 3,5 pouces |
System.iOS.Devices |
(480,320) |
(480,320) |
163 | ||
iPhone 4 pouces |
System.iOS.Devices |
(1136,640) |
(568,320) |
326 | ||
iPhone 4,7 pouces |
System.iOS.Devices |
(1334, 750) |
(667, 375) |
326 | ||
iPhone 5,5 pouces |
System.iOS.Devices |
(2208, 1242) |
(736, 414) |
489 | ||
iPad |
System.iOS.Devices |
(2048,1536) |
(1024,768) |
264 | ||
Bureau macOS |
System.Mac.Devices |
Remarque : Les périphériques ayant seulement les paramètres MaxPhysicalSize et MaxLogicalSize sont définis avec les dimensions exactes réelles.
Ajout d'une vue Android pour un périphérique spécifique
Pour créer une nouvelle vue, vous devez :
L'exemple suivant montre comment créer une vue pour un périphérique Android avec les spécifications d'affichage suivantes :
- Model = MyPhone
- Diagonal (in) = 4.5
- Resolution = 720 x 1280 pixels
- Pixel density = 326 ppi
- Css pixel ratio = xhdpi (2.0x)
Vous trouverez les spécifications d'un périphérique spécifique sur le site web du fabricant, sur la fiche de spécifications.
Ajout du périphérique prédéfini pour la nouvelle vue
Pour activer la vue dans le sélecteur de vue et personnaliser sa fiche, vous devez ajouter le périphérique prédéfini à partir du Gestionnaire de périphériques ou à partir du fichier DevicePresets.xml
:
- Pour ajouter le nouveau périphérique prédéfini à partir du Gestionnaire de périphériques, suivez les étapes relatives àl'ajout d'un périphérique prédéfini.
- Remarque : Si vous ajoutez un périphérique prédéfini à partir du Gestionnaire de périphériques, vous devez aller dans
C:\Users\<nomutilisateur>\AppData\Roaming\Embarcadero\BDS\21.0
, ouvrirDevicePresets.xml
et copier le nom généré automatiquement écrit entre les balises<Name></Name>
. Ce nom doit correspondre au nom de la vue utilisé dans le package de cette vue.
- Pour ajouter le nouveau périphérique prédéfini à partir du fichier
DevicePresets.xml
, suivez les étapes ci-dessous :
- Avertissement : Vérifiez soigneusement les modifications apportées au fichier
DevicePresets.xml
. Contrôlez les balises xml afin de vous assurer que leur casse est correcte. Sinon, le concepteur risque de ne pas les comprendre et de se comporter de manière inattendue.
- Allez sur
C:\Users\<nom_utilisateur>\AppData\Roaming\Embarcadero\BDS\21.0
- Remarque : C'est un dossier masqué. Si vous ne le voyez pas, activez l'option Afficher les fichiers, dossiers et lecteurs cachés dans la boîte de dialogue Options des dossiers du Panneau de configuration Windows.
- Ouvrez le fichier avec un éditeur de texte.
- Dans la balise
<MobileDevices RepositoryVersion="3">
, ajoutez un nouvel élémentMobileDevice
comme suit :<MobileDevice> <Name>TestView</Name> <!-- Same unique ID used in the creation package if you are registering a new View --> <Displayname>My Android Phone</Displayname> <!-- Name to show in the Device Manager, View Selector and Multi-Device Preview --> <DevicePlatform>3</DevicePlatform> <FormFactor>2</FormFactor> <UserData>True</UserData> <Portrait Enabled="True" Width="360" Height="640" Top="61" Left="44" StatusbarHeight="25" StatusBarPos="0" Artwork="ARTWORK_PATH"/> <UpsideDown Enabled="True" Width="360" Height="640" Top="68" Left="47" StatusbarHeight="25" StatusBarPos="0" Artwork="ARTWORK_PATH"/> <LandscapeLeft Enabled="True" Width="640" Height="360" Top="44" Left="68" StatusbarHeight="25" StatusBarPos="0" Artwork="ARTWORK_PATH"/> <LandscapeRight Enabled="True" Width="640" Height="360" Top="47" Left="61" StatusbarHeight="25" StatusBarPos="0" Artwork="ARTWORK_PATH"/> </MobileDevice>
- Remarques :
- Vous devez remplacer
ARTWORK_PATH
par le chemin d'accès correct à votre illustration graphique. - Si vous voulez définir des préréglages de périphériques avec une forme non rectangulaire, utilisez le champ Mask.
- Vous devez remplacer
Pour de plus amples informations, voir les éléments de
DevicePresets.xml
. - Remarques :
- Redémarrez l'EDI pour que les modifications prennent effet.
Après avoir redémarré l'EDI, le nouveau périphérique prédéfini apparaît dans le Gestionnaire de périphériques et dans l'aperçu multi-périphérique.
Créer un nouveau package
- Sélectionnez Fichier > Nouveau > Package - Delphi ou C++Builder.
- Dans le Gestionnaire de projets, cliquez avec le bouton droit sur <nom_projet.bpl>.
- Sélectionnez Ajouter nouveau > Unité.
- Ajoutez le code suivant à l'unité :
- Delphi :
unit Unit1;
interface
implementation
uses
system.Devices, system.Types, system.SysUtils;
const
ViewName = 'TestView'; // The unique name of the view, it has to be the same name as the one written between <Name></Name> tags of the DevicePreset.xml file.
initialization
TDeviceinfo.AddDevice(TDeviceinfo.TDeviceClass.Phone, ViewName,
TSize.Create(1216, 684), TSize.Create(1216 div 2, 684 div 2), // MinPhysicalSize(max, min), MinLogicalSize(max, min)
TSize.Create(1280, 720), TSize.Create(1280 div 2, 720 div 2), // MaxPhysicalSize(max,min), MaxLogicalSize(max,min)
TOSVersion.TPlatform.pfAndroid, 326); //Select the platform and the pixel density.
finalization
TDeviceinfo.RemoveDevice(ViewName); // To unregister the view after unistalling the package.
end.
- C++ :
Ajoutez ce code au fichier .cpp :
#include "Unit1.h"
#include <System.Devices.hpp>
// ---------------------------------------------------------------------------
#pragma package(smart_init)
void initdevice() {
TDeviceInfo::AddDevice(TDeviceInfo::TDeviceClass::Phone, "TestView", // The unique name of the view, it has to be the same name as the one written between <Name></Name> tags of the DevicePreset.xml file.
TSize(1216, 684), TSize(1216 / 2, 684 / 2), TSize(1280, 720),
TSize(1280 / 2, 720 / 2), TOSVersion::TPlatform::pfAndroid, 326);
}
Ajoutez ce code au fichier .h :
void initdevice();
#pragma startup initdevice 42
- Avant d'installer le package, fermez tous les projets ouverts sur le Concepteur.
- Dans le Gestionnaire de projets, cliquez avec le bouton droit sur <nom_projet.bpl>.
- Cliquez sur Installer.
- Un message d'information vous indique que le package a été installé.
- Redémarrez l'EDI pour que les modifications prennent effet.
Après avoir redémarré l'EDI, le nouveau périphérique prédéfini apparaît dans le Gestionnaire de périphériques, l'aperçu multi-périphérique et le sélecteur de vue.
Utilisation de la nouvelle vue
Après avoir ajouté le périphérique prédéfini, installé le package et redémarré l'EDI, la vue est disponible dans le sélecteur de vue. Elle apparaît avec le nom d'affichage défini dans le fichier xml.
Afin d'utiliser la vue personnalisée lorsque vous exécutez le projet multi-périphérique dans le périphérique correspondant, procédez comme suit :
- Référencez l'unité de la vue depuis votre projet, en ajoutant par exemple l'unité
.pas
à votre projet.
- Avertissement : Référencer l'unité de la vue dans votre projet enregistre la vue même si cela n'est pas nécessaire.
Lorsque vous exécutez le projet, un algorithme sélectionne la vue la plus appropriée pour le périphérique sélectionné. Si la vue personnalisée est la vue la plus appropriée pour le périphérique cible, celle-ci est lancée. Le système ignore les vues qui ne sont pas compatibles avec la plate-forme cible.
Retrait des vues personnalisées
Pour dérecenser une vue personnalisée du sélecteur de vue (ajoutée au package à l'étape Créer un nouveau package), vous devez utiliser le code suivant.
const
ViewName = 'TestView';
finalization
TDeviceinfo.RemoveDevice(TestView);
Pour retirer une vue personnalisée du sélecteur de vue :
- Fermez toutes les fiches avant de désinstaller un package contenant des vues personnalisées.
- Choisissez Composant > Installer des packages....
- Sélectionnez le package que vous voulez retirer.
- Cliquez sur Retirer.
Après avoir retiré le package, si vous n'avez plus besoin de ce périphérique prédéfini, vous pouvez le supprimer. Pour cela, supprimez le périphérique prédéfini à partir du Gestionnaire de périphériques ou supprimez les informations associées qui sont dans le fichier DevicePresets.xml
de la même manière que vous les avez ajoutées dans les étapes précédentes.
- Remarque : Il arrive que vous deviez redémarrer l'EDI pour que les changements prennent effet.