Conversion de VCL en FireMonkey
Remonter à Guide des applications FireMonkey
Sommaire |
Différences entre les applications VCL et FireMonkey
La VCL (bibliothèque des composants visuels) supporte seulement le développement basé sur Windows — les plates-formes Win32 et Win64. Les composants FireMonkey, quant à eux, ont été personnalisés pour un usage sur toutes les plates-formes supportées, notamment la plate-forme OS X (Mac).
FireMonkey est quelque peu similaire à la bibliothèque VCL. FireMonkey et VCL partagent les ancêtres de TObject à TComponent, mais ils divergent au-delà de TComponent. Si vous êtes familier avec la VCL, certains composants, classes, contrôles et fonctions de FireMonkey seront familiers. Toutefois, FireMonkey est un nouveau framework qui offre des contrôles dynamiques vectoriels, ainsi que d'autres fonctionnalités que la VCL n'offre pas. Par exemple, FireMonkey a des graphiques 2D et 3D sophistiqués, et des effets spéciaux tels que les filtres.
Migration des applications VCL vers FireMonkey
Bien qu'il n'y ait pas de chemin de migration directe entre la VCL et FireMonkey, vous pouvez convertir une application VCL existante en créant une nouvelle application HD FireMonkey, puis en modifiant-coupant-collant l'application VCL existante, en effectuant pour l'essentiel un refactoring de l'application VCL afin qu'elle devienne une application FireMonkey qui peut s'exécuter sur plusieurs plates-formes.
Utilisation du convertisseur Mida pour convertir une application VCL en FireMonkey
Le convertisseur Mida est un produit tiers qui automatise certains aspects de la conversion des contrôles VCL en contrôles FireMonkey. Mida s'installe en tant que plug-in dans le menu Outils de l'EDI de RAD Studio.
Plusieurs versions de Mida sont disponibles :
- La version gratuite de Mida effectue la migration des contrôles VCL standard et des LiveBindings.
- Pour la version gratuite, voir http://cc.embarcadero.com/item/28943
- Les versions Mida Pro et Mida Studio offrent des fonctionnalités améliorées, telles que la conversion des images et des contrôles personnalisés.
Le pack Mida active le support des images de bouton, comme le composant VCL TBitBtn.
La page d'accueil Mida offre d'autres informations, notamment des blogs, des FAQs et des commandes de produits : http://www.midaconverter.com/
Voir aussi Importation ou migration de projets existants dans XE2 et Migration des applications VCL en applications multiplates-formes.
Différences souvent rencontrées
Bien que FMX ait été conçu pour avoir quelques similitudes superficielles avec VCL, de nombreuses petites différences peuvent dérouter quelqu'un qui est familier avec VCL. Voici quelques différences, sans ordre particulier :
- Contrôles Standard : Les contrôles VCL standard sont dans l'unité Vcl.StdCtrls, tandis que les contrôles FireMonkey équivalents sont dans FMX.Controls. Les deux frameworks ont des contrôles supplémentaires dans une unité ExtCtrls (FMX.ExtCtrls et Vcl.ExtCtrls), mais sans chevauchement entre les deux frameworks.
- Position :
- Dans la VCL, la position d'un contrôle est exprimée par ses propriétés Top et Left.
- Dans FireMonkey, les contrôles utilisent une position de type TPosition avec les propriétés X et Y imbriquées. La propriété Position des contrôles 3D est une instance de TPosition3D, avec une coordonnée Z supplémentaire. Pour la taille, FireMonkey utilise Width et Height (et Depth pour les contrôles 3D).
- Texte : Le texte qui apparaît dans un libellé FireMonkey est sa propriété Text, pas sa propriété Caption (comme dans la VCL).
- Taille des fontes :
- Dans FireMonkey, la taille des fontes est exprimée en pixels indépendants du périphérique (DIPs), 96 par pouce logique.
- Dans la VCL, la taille des fontes est exprimée en points, 72 par pouce logique.
- Par conséquent, le texte utilisant la même valeur Font.Size est plus petit dans FireMonkey.
- Cases à cocher : Dans FireMonkey, les cases à cocher doivent utiliser l'événement OnChange pour réagir aux changements de l'état coché au lieu de OnClick. C'est la propriété IsChecked qui reflète cet état, et non Checked comme dans la VCL.
- Couleurs : Les couleurs FireMonkey ont un composant alpha (opacité) en plus de RVB. Les couleurs sont représentées par les types système TAlphaColor et TAlphaColorRec. Les constantes de couleur de FireMonkey sont dans FMX.Types et préfixées par "cla" au lieu de "cl". Voir aussi Couleurs de la VCL.
- TPanel peut être utilisé dans FireMonkey pour obtenir le même effet que le contrôle TRadioGroup de la VCL.
- Relations parent-enfant : Dans la VCL, la définition de relations parent-enfant entre des composants ne peut être effectuée que via les TForm, les TFrame, TPanel et les modules de données. Dans FireMonkey, vous pouvez définir qu'un objet est le parent de quelque chose d'autre ; cette relation peut être facilement définie dans la vue Structure.
- Un TMaskEdit ou un TEdit de la VCL peut être implémenté dans FireMonkey en utilisant un TEdit et sa propriété Password.
- Evénements : Les événements de la VCL OnDrawDataCell et OnDrawColumnCell peuvent être remplacés dans FireMonkey par TStringGrid avec LiveBindings.
- Constantes : Des constantes comme les résultats modaux et les codes de touches virtuelles ont été déplacées de Vcl.Controls à System.UITypes.