Nouveautés de Delphi et C++Builder XE8

De RAD Studio
(Redirigé depuis Nouveautés)
Aller à : navigation, rechercher

Remonter à Accueil


Les releases XE8, XE8 Subscription Update 1 etXE8 General Update 1 comportent des fonctionnalités nouvelles ainsi que des améliorations :

Sommaire

Nouveautés de XE8 Mise à jour 1

Consultez la liste ci-dessous pour voir les fonctionnalités incluses dans XE8 Subscription Update 1 et dans XE8 General Update 1.

  • Subscription Update 1 est destiné aux clients abonnés aux mises à jour.
  • General Update 1 est destiné aux clients XE8 ne disposant pas d'un abonnement aux mises à jour.

Vous pouvez consulter des informations complémentaires sur les abonnements aux mises à jour (EN).

Nouveautés de XE8 Subscription Update 1

Subscription Update 1 est destiné aux clients abonnés aux mises à jour.

  • Nouvelles fonctionnalités :
  • Corrections particulières :

Nouveautés de XE8 General Update 1

General Update 1 est destiné aux clients XE8 ne disposant pas d'un abonnement aux mises à jour.

  • Nouvelles fonctionnalités :

Fonctionnalités de XE8 Update 1

Modifications relatives à l'utilitaire graphique

Le nom de la fenêtre GetIt ainsi que le nom GetIt dans le menu Outils sont maintenant Gestionnaire de packages GetIt.

GetIt compte désormais trois nouvelles options de filtrage : Gratuit, Achat et Acheté. Apprenez-en plus sur ces options dans la fenêtre principale de GetIt.

Modifications relatives aux bases de données

Dans XE8, la propriété Unidirectional est synchronisée avec la propriété en lecture seule IsUniDirectional.

Changez la valeur de la propriété Unidirectional de votre TFDQuery ou de votre TFDTable pour convertir vos ensembles de données FireDAC en ensembles de données unidirectionnels.

Modifications relatives à l'EDI

La nouvelle barre d'outils Communauté Embarcadero permet de se connecter aisément à la communauté sociale Embarcadero (EN). La barre d'outils figure dans le coin supérieur droit de l'EDI.

Accédez à Voir > Barres d'outils > Communauté Embarcadero pour afficher la barre d'outils ou la masquer.

Pour plus d'informations, voir Barre d'outils Communauté Embarcadero.

La Page d'accueil inclut une section Projets favoris. Vous pouvez ajouter vos projets favoris à cette section. Visitez Projets favoris accessibles depuis la page d'accueil pour savoir comment ajouter ou retirer vos projets favoris.

Modifications relatives à FireMonkey pour XE8

FireMonkey est notre bibliothèque propriétaire de programmation orientée objet (classes, méthodes, propriétés, etc.).

Présentation native de TListView, TSwitch, TMemo, TCalendar, TMultiView et TEdit sur iOS

Sur la plate-forme cible iOS, FireMonkey prend désormais en charge les présentations stylées et natives pour les contrôles TListView, TSwitch, TMemo, TCalendar, TMultiView et TEdit.

  • Par défaut, lorsque vous ajoutez l'un de ces composants au Concepteur de fiches, RAD Studio utilise la présentation Styled.
  • Pour utiliser la présentation native sur la plate-forme cible iOS, définissez la nouvelle propriété ControlType sur Platform.

Pour de plus amples informations, voir TPresentedControl.ControlType, TCustomListView.ControlType et Contrôles iOS natifs de FireMonkey.

Interopérabilité améliorée entre la plate-forme et les contrôles stylés

La propriété ControlType est désormais disponible pour plusieurs contrôles qui n'ont pas encore une présentation iOS native.

Navigateurs Web de bureau

FireMonkey prend maintenant en charge le composant TWebBrowser sur les plates-formes de bureau (Windows et Mac OS X). Auparavant, TWebBrowser prenait en charge les plates-formes mobiles (Android et iOS). Toutes les fonctions basiques du navigateur Web sont disponibles (comme naviguer vers l'URL, revenir à la page précédente, passer à la page suivante, et ainsi de suite). Pour de plus amples informations, voir Tutoriel mobile : Utilisation du composant Navigateur Web (iOS et Android).

Cartes interactives

Sur les plates-formes mobiles (Android et iOS), FireMonkey prend en charge le composant TMapView qui ajoute des cartes interactives à vos applications mobiles. Les fonctionnalités élémentaires de ce composant sont les suivantes :

  • Quatre types de cartes : Normal, Satellite, Hybrid et (pour Android seulement) Terrain.
  • Contrôle des mouvements : contrôles des mouvements d'inclinaison intuitive, de rotation et de zoom.
  • Contrôle de la vue Carte : capacité de contrôler les propriétés de la carte comme les coordonnées du centre de la carte, l'orientation de la carte et ainsi de suite.
  • Marqueurs personnalisés : capacité d'ajouter des marqueurs aux cartes.

IMPORTANT : Pour utiliser TMapView dans une app Android, vous devez préalablement obtenir une clé d'API Google Maps. En l'absence d'une clé d'API valide, une erreur d'exécution se produit. Pour des détails sur l'obtention de la clé d'API Google Maps, voir Configuration des applications Android pour utiliser Google Maps.

Pour plus d'informations et des exemples, voir Tutoriel mobile : Utilisation d'un composant Carte pour travailler avec des cartes (iOS et Android)

Nouvelles options pour la bibliothèque multimédia

FireMonkey fournit désormais une option pour enregistrer les photos prises par la caméra d'un périphérique dans la bibliothèque de photos de ce périphérique.
Si votre application gère les photos en utilisant les actions FireMonkey ou l'interface IFMXCameraService, vous pouvez utiliser la propriété TCustomTakePhotoAction.NeedSaveToAlbum ou un paramètre du type TParamsPhotoQuery pour que votre application enregistre automatiquement les photos dans la bibliothèque de photos du périphérique.
En outre, FireMonkey fournit l'interface IFMXPhotoLibrary qui vous permet d'enregistrer une image bitmap dans la bibliothèque de photos du périphérique.

Pour de plus amples informations et les exemples de code, voir :

Actions standard pour TMediaPlayer

FireMonkey fournit désormais les actions standard suivantes que vous pouvez utiliser pour contrôler toutes les instances de TMediaPlayer :

Aperçu du positionneur de fiches

Un positionneur de fiches est désormais disponible dans les projets FireMonkey. Le positionneur de fiches vous permet de positionner les fiches les unes par rapport aux autres, au fur et à mesure de la conception de votre application. Situé dans le coin inférieur droit du Concepteur, le positionneur de fiches montre le positionnement de votre fiche telle qu'elle apparaîtra à l'écran lors de l'exécution.

InputQuery prend désormais en charge le masquage des champs d'entrée

InputQuery vous permet désormais de marquer les champs comme masqués de manière à ce que les données d'entrée soient visuellement masquées sur l'écran. Pour marquer un champ comme masqué, dans un appel à InputQuery préfixez le nom du champ avec :

  • Delphi : "#1". Par exemple, à la place du nom de champ "Password", utilisez le nom de champ "#1Password".
  • C++ : "\1". Par exemple, à la place du nom de champ "Password", utilisez le nom de champ "\1Password".

AppAnalytics dans FireMonkey

FireMonkey prend maintenant en charge AppAnalytics, qui vous permet de suivre l'usage des données de votre application. Vous devez uniquement déposer un composant TAppAnalytics dans votre application et définir certaines options du composant. Dès que TAppAnalytics est actif, l'usage des données est disponible en quelques minutes dans l'interface Web AppAnalytics.

  • AppAnalytics est entièrement anonyme et ne collecte pas ni ne transmet les informations privées ou d'identification personnelle.

Personnalisation des notifications locales

Sons de notification personnalisés

Vous pouvez désormais définir un son de notification personnalisé en paramétrant la valeur du champ SoundName. Pour de plus amples informations, voir Tutoriel mobile : Utilisation des notifications (iOS et Android).

Répétition des notifications

Répétez une notification programmée au fil du temps en définissant la valeur de la propriété RepeatInterval. Pour de plus amples informations, voir Tutoriel mobile : Utilisation des notifications (iOS et Android).

La vue Android utilisée à l'exécution dépend des dimensions du périphérique cible

Les deux tableaux suivants décrivent respectivement l'algorithme utilisé pour choisir la vue Android adaptée à l'exécution, et les tailles de périphériques Android appropriées pour chaque vue :

Enregistrement d'images dans l'album photo du périphérique

FireMonkey inclut désormais l'interface IFMXPhotoLibrary pour enregistrer des images dans l'album photo du système :

Pour de plus amples informations sur la procédure d'enregistrement des images dans l'album photo du périphérique, consultez MediaLibrary.IFMXPhotoLibrary et IFMXPhotoLibrary.AddImageToSavedPhotosAlbum.

TImageList offre la possibilité d'utiliser des listes d'images en tant que collections centralisées d'images

FireMonkey fournit maintenant des listes d'images via un nouveau composant, FMX.ImgList.TImageList. Les listes d'images procurent des outils complets pour l'utilisation des collections centralisées de petites images adaptées aux éléments de l'interface utilisateur (contrôles, menus, etc.) dans vos applications FireMonkey. Le TImageList de FireMonkey a la même utilité que le Vcl.Controls.TImageList de la VCL, mais il fournit plus de fonctionnalités avancées et est plus pratique à utiliser dans des applications FireMonkey multiplates-formes.

Chaque image dans une liste est composée de plusieurs bitmaps multi-résolutions pour garantir que les images sont correctement affichées sur des périphériques ayant des résolutions et des densités d'écran variées. L'éditeur de listes d'images vous permet de préparer et de modifier des listes d'images FireMonkey.

Pour plus d'informations, voir Utilisation des listes d'images de TImageList en tant que collections centralisées d'images et Exemple FMX.ImageList.

Modifications et nouveautés dans l'API FireMonkey

Nouvel événement OnFilter

FireMonkey fournit le nouvel événement OnFilter pour définir des filtres personnalisés dans une zone de recherche.

Pour plus d'informations sur le nouvel événement OnFilter, reportez-vous à TCustomListView.OnFilter et TSearchBoxModel.OnFilter.

Définition d'un paramètre de capture de qualité personnalisé pour votre caméra

TVideoCaptureQuality a la nouvelle valeur CaptureSettings pour définir un paramètre de capture de qualité personnalisé pour votre caméra.

Nouvelle classe TBoundingBox

TBoundingBox est une nouvelle classe, similaire à TRectF mais pour une utilisation en 3D. Elle définit un type d'enregistrement qui stocke les sommets (EN) maximal et minimal décrivant une zone.

Plusieurs constructeurs permettent de créer un TBoundingBox en se basant sur une origine, un nuage de points, des coordonnées ou un TBoundingBox existant. Cette classe fournit également d'autres méthodes incluant notamment GetSize, Inflate, IntersectsWith, Contains et Normalize.

Propriété PullRefreshWait pour la zone de liste native iOS

La nouvelle propriété PullRefreshWait permet de définir si l'indicateur d'incrémentation animé qui s'affiche lorsque PullToRefresh est égal à True disparaît automatiquement.

Si vous définissez PullRefreshWait sur True, vous devez appeler la méthode StopPullRefresh pour masquer l'indicateur d'incrémentation animé lorsque cela est nécessaire.

La propriété PullRefreshWait s'applique aux contrôles iOS natifs uniquement.

Modifications relatives à la bibliothèque d'exécution (RTL) pour XE8

Nouvelle API de client HTTP

La RTL fournit plusieurs nouvelles unités réseau avec des membres qui vous permettent de créer un client HTTP, d'envoyer des requêtes vers des serveurs HTTP et de gérer leurs réponses.

Utilisation d'un client HTTP explique comment utiliser les deux nouveaux composants HTTP, TNetHTTPClient et TNetHTTPRequest, pour gérer les requêtes HTTP. Voir également les principales classes de client HTTP :

  • THTTPClient, qui représente un client HTTP.
  • THTTPRequest, qui représente une requête de votre client vers un serveur.
  • THTTPResponse, qui représente la réponse du serveur à une requête à partir de votre client.

Prise en charge des beacons

La RTL prend maintenant en charge l'utilisation des beacons (balises). Un beacon est un périphérique Bluetooth Low Energy. Il intègre dans ses données publicitaires des données spécifiques au fabricant ("Manufacturer Specific Data"), ce qui permet à tout périphérique recevant ces informations d'identifier le périphérique beacon et de calculer la distance qui les sépare, sans qu'il soit nécessaire de les appairer ou de les connecter.

Deux formats de beacon sont pris en charge :

  • iBeacon (EN) - le format défini par Apple
  • AltBeacon (EN) - un format ouvert, connu sous le nom de beacon alternatif, qui prend en charge Android et iOS

Utilisation des beacons explique comment implémenter une application beacon.

Nouveau composant Classic Bluetooth

L'unité System.Bluetooth.Components fournit désormais un nouveau composant : TBluetooth. Ce nouveau composant vous permet d'utiliser Classic Bluetooth sur vos applications en utilisant une approche basée sur les composants.

Voir Utilisation du protocole Classic Bluetooth pour apprendre à utiliser ce nouveau composant.

Nouvelle API pour les fonctions de hachage

La RTL a une nouvelle unité, System.Hash. Cette unité inclut les classes et les méthodes qui vous permettent d'utiliser les fonctions de hachage suivantes dans vos applications :

Nouveaux types de données Delphi : FixedInt et FixedUInt

Deux nouveaux types entiers 32 bits indépendants de la plate-forme ont été introduits dans XE8 :

FixedInt et FixedUInt garantissent la portabilité, une meilleure intégration et l'interopérabilité avec les plates-formes 32 bits et 64 bits. Ces deux nouveaux types assurent la prise en charge inter-langage entre Delphi et C++ pour vos applications.

La taille de FixedInt et FixedUInt est de 32 bits sur toutes les plates-formes 32 bits et 64 bits (iOS 64 bits, Windows 64 bits, Windows 32 bits, OSX32, iOS 32 bits et Android). Le tableau suivant présente les types équivalents entre les différentes plates-formes.

Types équivalents dans d'autres plates-formes
Plates-formes Windows
(Windows 32 bits et 64 bits)
Plateformes OSX32 et Android, et
plates-formes iOS (iOS 32 bits et 64 bits)
FixedInt LongInt Integer

FixedUInt

LongWord Cardinal

Pour de plus amples informations, voir :

Modification de la taille des LongInt et LongWord pour les plates-formes iOS 64 bits

LongInt et LongWord sont désormais des types d'entier dépendants de la plate-forme.

Sur les plates-formes iOS 64 bits, les types LongInt et LongWord doublent la taille qui est prise en charge sur les plates-formes 32 bits (Windows 32 bits, OSX32, iOS 32 bits et Android) et sur les plates-formes Windows 64 bits, comme suit :

Taille
Plates-formes Windows 32 bits et 64 bits Plates-formes iOS 64 bits
LongInt 32 bits (4 octets) 64 bits (8 octets)

LongWord

32 bits (4 octets) 64 bits (8 octets)

Pour de plus amples informations, voir Types entiers dépendants de la plate-forme.

Bibliothèque de programmation asynchrone

La RTL prend en charge la programmation asynchrone dans TComponent.

Pour de plus amples informations, voir Utilisation de la bibliothèque de programmation asynchrone.

Modifications relatives à la VCL pour XE8

SetApplicationMainFormOnTaskBar a été retirée de Vcl.Forms.hpp

Dans vos applications VCL C++ existantes, vous devez remplacer la ligne suivante :

 SetApplicationMainFormOnTaskBar(Application, true);

par cette ligne :

  Application->MainFormOnTaskBar = true;

Pour de plus amples informations, voir :

AppAnalytics dans la VCL

La VCL prend désormais en charge le composant TAppAnalytics. AppAnalytics vous permet de suivre l'usage des données de votre application. Vous devez uniquement déposer un composant TAppAnalytics dans votre application et définir certaines options du composant. Dès que AppAnalytics est actif, l'usage des données est disponible en quelques minutes dans l'interface Web AppAnalytics. AppAnalytics ne collecte pas et ne transmet pas les informations identifiables privées ou personnelles. Il est entièrement anonyme.

Pour de plus amples informations, voir Présentation de AppAnalytics.

Nouveaux styles VCL

Trois nouveaux styles VCL sont inclus dans XE8 : Glow, Sky, et Tablet Light.

Vous accédez aux styles VCL en sélectionnant Projet > Options > Application > Apparence.

Modifications relatives à Delphi pour XE8

DCCIOSARM64.EXE : nouveau compilateur pour périphérique iOS 64 bits

Le compilateur DCCIOSARM64.EXE est un nouveau compilateur NEXTGEN qui prend en charge le développement des apps iOS 64 bits.

Notez que l'App Store exige désormais que vos apps iOS 32 bits prennent également en charge les périphériques iOS 64 bits. Pour plus d'informations, voir Nouvelle option pour la construction de fichiers binaires iOS prenant en charge iOS 32 bits et 64 bits.

Apps iOS universelles : DCCIOSARM64 prend en charge une nouvelle option sur la page Compilation de Options de projet : Générer le fichier binaire universel iOS (armv7 + arm64).
La définition de cette option sur True génère une app iOS universelle qui s'exécute sur les périphériques iOS 32 bits et 64 bits. Cette option est uniquement disponible lorsque la plate-forme cible est Périphérique iOS 64 bits.

Voir aussi Compilation conditionnelle (Delphi).

Deux nouveaux types de données : FixedInt et FixedUInt

Pour des détails, voir Nouveaux types de données Delphi : FixedInt et FixedUInt.

Modifications relatives à C++ pour XE8

DCCIOSARM64.EXE : nouveau compilateur basé sur Clang pour périphérique iOS 64 bits

Nous avons ajouté un nouveau compilateur qui produit des applications iOS 64 bits : BCCIOSARM64.EXE, le compilateur C++ pour le périphérique iOS 64 bits.

Notez que l'App Store exige désormais que vos apps iOS 32 bits prennent également en charge les périphériques iOS 64 bits. RAD Studio comprend une option permettant de créer une app iOS 32 bits/64 bits universelle. Pour de plus amples informations, voir Nouvelle option du compilateur pour la construction de fichiers binaires iOS prenant en charge iOS 32 bits et 64 bits.

BCCIOSARM64 prend en charge la nouvelle macro prédéfinie __arm64__. Pour écrire du code spécifique à la plate-forme cible iOS 64 bits, vous pouvez utiliser :

#if defined (__arm64__)
 ...
#endif

Pour écrire du code spécifique à x64 (iOS et Windows), vous pouvez utiliser :

#if defined(__clang__) && (__POINTER_WIDTH__ == 64)
...
#endif

Pour de plus amples informations, voir Macros prédéfinies.

Les noms entièrement qualifiés sont désormais requis lors de l'inclusion des packages d'exécution

Lors de la construction d'une application C++ VCL ou FireMonkey, l'EDI effectue une analyse des packages, c'est-à-dire qu'il évalue les packages requis/utilisés par l'application à partir des en-têtes inclus. Avant XE8, l'EDI utilisait le nom de base lors de la mise en correspondance des en-têtes avec les packages. Par exemple, en voyant qu'une application incluait SysUtils.hpp, l'EDI en déduisait que l'application utilisait le package rtl. De même, #include ActnCtrls.hpp signifie que l'application utilisait le package vcl.

Néanmoins, l'utilisation du nom de base a des inconvénients. Une application incluant un en-tête nommé About.h|hpp pourrait présumer à tort la nécessité du package FireDac UI, car celui-ci contient une unité nommée FireDAC.VCLUI.About.hpp. De même, l'inclusion de assert.h pourrait provoquer un déclenchement par l'EDI de la liaison au package DUnitXRuntime (il contient une unité nommée DUnitX.Assert).

Nom qualifié correspondant uniquement

A partir de XE8, l'EDI considère désormais qu'un package est requis uniquement lorsqu'il existe une instruction #include pour le nom qualifié/complet d'une unité de ce package. Ainsi, en voyant #include <XMLDoc.hpp>, l'EDI ne conclut pas que le package Xml est requis. L'EDI inclut uniquement le package xmlrtl si vous spécifiez le nom entièrement qualifié : #include <Xml.XMLDoc.hpp>.

Cette modification affecte uniquement les nouveaux projets

La modification s'applique aux nouveaux projets, ou lorsqu'un projet existant commence à utiliser un package qu'il n'avait jamais utilisé auparavant. Cette modification n'affecte pas les projets existants, car leurs exigences en matière de packages ont déjà été évaluées et enregistrées dans le fichier projet (<nom_projet>.cbproj).

Nouvelles macros définies

Pour vous aider à surveiller votre utilisation des noms de packages entièrement qualifiés, les deux nouvelles macros suivantes ont été définies :

  • WARN_LEGACY_HEADER_USAGE - Génère un avertissement lorsqu'un en-tête non qualifié est inclus.
  • ERROR_LEGACY_HEADER_USAGE - Génère une erreur lorsqu'un en-tête non qualifié est inclus.

Si vous ajoutez #define WARN_LEGACY_HEADER_USAGE et que vous entrez ensuite #include <SysUtils.hpp>, l'avertissement suivant apparaît après la prochaine construction :

 Include <System.SysUtils.hpp> instead

Si vous ajoutez #define ERROR_LEGACY_HEADER_USAGE et que vous entrez ensuite #include <SysUtils.hpp>, le message d'erreur suivant apparaît après la prochaine construction :

 Fatal F1003 $BDS\include\windows\rtl\SysUtils.hpp 8: Error directive: Include 'System.SysUtils.hpp' instead
  *** 1 errors in Compile ***

Tableaux DynamicArray : la construction et l'initialisation sont désormais plus conviviales

Auparavant, vous deviez définir la longueur d'un DynamicArray avant d'ajouter les éléments, comme ceci :

  DynamicArray<int> test;
  test.Length = 3;
  test[0] = 1;
  test[1] = 2;
  test[2] = 3;

Maintenant, vous pouvez simultanément initialiser et construire un tableau dynamique lorsque vous utilisez l'un des compilateurs C++ basés sur Clang :

  DynamicArray<int> test = {0, 1, 2};

Pour BCC32, vous pouvez initialiser et construire le tableau comme suit :

 DynamicArray<int> test(0, 1, 2);

La nouvelle syntaxe a été implémentée en utilisant C++11 std::initializer_list.

Nouvelles fiches

En utilisant un tableau C++ simple :

    // template <size_t SIZE> System::DynamicArray(T(&array)[SIZE]);
    int values[] = { 1, 2, 3, 4, 5 };
    System::DynamicArray<int> h(values);

Liste d'initialiseurs C++11 :

    // System::DynamicArray(std::initializer_list<T> il);
    System::DynamicArray<char> ArrayOfChars('a', 'b', 'c');
    System::DynamicArray<int> ArrayOfInts(0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
                                        10, 11, 12, 13, 14, 15, 16, 17, 18);

Constructeur basé sur un modèle variadic C++11 :

    // template <class... Types> System::DynamicArray(const T &t, Types && ...values);
    System::DynamicArray<char> c('a'); // t='a', ...values=<>
    System::DynamicArray<char> d('a', 'b', 'c'); // t='a', ...values=<'b', 'c'>

Etant donné que BCC32 ne prend pas en charge l'initialisation uniforme C++11, nous avons ajouté des surcharges de constructeur pour 2 à 19 paramètres :

    // System::DynamicArray(const T &t0,  const T &t1,  const T &t2);
    System::DynamicArray<char> f('a', 'b', 'c');
    // System::DynamicArray(const T &t0,  const T &t1,  const T &t2,  const T &t3,
    //                      const T &t4,  const T &t5,  const T &t6,  const T &t7,
    //                      const T &t8,  const T &t9,  const T &t10, const T &t11,
    //                      const T &t12, const T &t13, const T &t14, const T &t15,
    //                      const T &t16, const T &t17, const T &t18);
    System::DynamicArray<int> g( 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
                                10, 11, 12, 13, 14, 15, 16, 17, 18);

Pour de plus amples informations, voir Types structurés.

SetApplicationMainFormOnTaskBar a été retirée de Vcl.Forms.hpp

Pour plus de détails, voir Modifications relatives à la VCL pour XE8.

Bibliothèques Boost désormais disponibles hors de l'installateur

Les bibliothèques Boost ne font plus partie de l'installateur du produit. Vous pouvez facilement obtenir Boost en sélectionnant Outils > GetIt pour ouvrir la fenêtre principale de GetIt, puis en choisissant d'installer Boost à partir de GetIt.

Pour les autres façons d'installer (ou de désinstaller) Boost, voir Bibliothèques Boost.

Nouvelles procédures de gestion des méthodes anonymes Delphi

Nous avons mis à jour la procédure recommandée pour la gestion des méthodes anonymes Delphi dans vos applications C++. La description révisée, dans Comment gérer les méthodes anonymes Delphi dans C++, utilise un Functor (objet fonction) ou une expression Lambda. Voir les exemples de code sur la page.

Opérateur d'assignation C++ en tant qu'opérateur implicite Delphi

En C++, il est possible d'utiliser operator= pour l'assignation du type de résultat, exactement comme l'opérateur implicite utilisé en Delphi.

Prenons, par exemple, la variable myVar avec le type TValue ; en Delphi, il est possible d'assigner des types différents à cette variable en procédant comme suit :

a := 'assigning a string';
a := 123;
a := 3.14;

Auparavant, en C++, sans l'opérateur d'assignation, vous auriez dû l'écrire ainsi :

a = TValue::_op_Implicit(UnicodeString(L"assigning a string"));
a = TValue::_op_Implicit(123);
a = TValue::_op_Implicit(3.14L);

Désormais, en C++, avec l'opérateur d'assignation, vous pouvez l'écrire ainsi :

a = UnicodeString(L"assigning a string");
a = 123;
a = 3.14L;

Pour plus de détails, voir Opérateur d'assignation C++ en tant qu'opérateur implicite Delphi.

Modifications relatives à l'EDI pour XE8

Nouvelle plate-forme cible : Périphérique iOS - 64 bits

Pour créer une app pour la nouvelle plate-forme Périphérique iOS - 64 bits :

Aperçu multi-périphérique

Avec le nouvel aperçu multi-périphérique, vous pouvez obtenir un aperçu de l'aspect de votre application sur différents périphériques. La fonctionnalité Aperçu multi-périphérique procure un aperçu de la zone de conception sur différents périphériques à la fois. Vous pouvez sélectionner les périphériques à utiliser pour l'aperçu.

MDPreviewWindow1.png

Pour ouvrir la fenêtre Aperçu multi-périphérique, choisissez Voir > Aperçu multi-périphérique.

Pour de plus amples informations sur cette fonctionnalité, voir Aperçu multi-périphérique.

Gestionnaire de périphériques

Le Gestionnaire de périphériques affiche une grille avec les périphériques prédéfinis disponibles. Les périphériques prédéfinis sont une liste de périphériques disponibles à la conception, par exemple dans la fenêtre Aperçu multi-périphérique.

Pour ouvrir le Gestionnaire de projets, sélectionnez Outils > Options > Options d'environnement > Concepteur de fiches > Gestionnaire de périphériques.

DeviceManager.png

Le Gestionnaire de périphériques vous permet d'ajouter, de modifier et de supprimer un périphérique prédéfini en utilisant la fenêtre Paramètres du périphérique.

Les périphériques prédéfinis peuvent également être utilisés comme vues de votre projet multi-périphérique si la vue a été recensée en installant le package associé.

Le Gestionnaire de périphériques gère le fichier DevicePresets.xml.

Remarque : Dans XE8, le fichier MobileDevices.xml a été renommé DevicePresets.xml.

Exécuter vos apps sur n'importe quel simulateur iOS

Le sous-noeud Cible du noeud de plate-forme cible Simulateur iOS dans le Gestionnaire de projets affiche à présent la liste complète des simulateurs pris en charge par l'installation Xcode sur votre Mac. Le Gestionnaire de projets indique également la version d'iOS pour chaque simulateur ; vous pouvez d'ailleurs exécuter vos applications sur un modèle de périphérique donné exécutant l'une quelconque des versions d'iOS prises en charge.

XE8iOSSimulatorTarget.png

Ajouter des fichiers spécifiques s'ouvre automatiquement quand cela est nécessaire

Lorsque vous ajoutez au Gestionnaire de projets un fichier susceptible de vous obliger à ajouter un certain nombre de fichiers spécifiques à la configuration de déploiement de votre projet, RAD Studio ouvre une vue filtrée de la boîte de dialogue Ajouter des fichiers spécifiques pour vous permettre d'inclure les fichiers spécifiques requis dans la configuration de déploiement de votre projet. Voir Liste filtrée Ajouter des fichiers spécifiques pour plus d'informations.

Désactivation des bibliothèques Java RAD Studio intégrées pour Android à l'aide du Gestionnaire de projets

Dans XE8, le Gestionnaire de projets répertorie les bibliothèques Java RAD Studio intégrées pour Android, et vous pouvez désactiver l'une quelconque de ces bibliothèques. Pour alléger la taille de l'application, vous pouvez désactiver les bibliothèques Java qui ne sont pas nécessaires à son fonctionnement. Pour plus d'informations, voir Utilisation des bibliothèques Java RAD Studio intégrées pour Android.

XE8DisableJavaLibrary.png

Dans XE7, le Gestionnaire de projets vous permettait d'ajouter aisément des bibliothèques Java personnalisées à vos applications Android. Cependant, pour supprimer des bibliothèques Java que RAD Studio intègre par défaut aux applications Android et qui sont devenues inutiles, vous deviez créer et déployer manuellement un fichier classes.dex personnalisé.

Système de contrôle de version Mercurial intégré dans l'EDI

RAD Studio prend maintenant en charge un nouveau système de contrôle de version intégré dans l'EDI, pour la gestion et le suivi des modifications dans vos projets : le système de contrôle de version distribué Mercurial.

Le Gestionnaire de l'historique présente désormais les informations des journaux du contrôle de version Mercurial intégré à partir de votre référentiel local. Vous trouverez plus d'informations sur le suivi des modifications de votre projet dans les onglets Contenu, Informations et Différences.

Vous pouvez utiliser Mercurial pour :

  • Cloner une copie de votre référentiel Mercurial distant et commencer à travailler avec.
  • Valider les modifications apportées à votre référentiel local.
  • Afficher les données du journal du référentiel distant relatives à votre projet.

Dans XE8, certaines fonctionnalités Git ont été ajoutées dans l'EDI :

  • Authentifier votre référentiel privé distant.
  • Placer vos modifications dans le référentiel Git distant et les extraire, en mettant à jour votre copie de travail avec les dernières modifications distantes.

Pour de plus amples informations sur les systèmes de contrôle de version intégrés dans l'EDI, voir :

Outil de migration des paramètres

Le nouvel outil de migration des paramètres fourni avec RAD Studio XE8 vous permet d'importer et d'exporter des paramètres de configuration entre RAD Studio et Appmethod ainsi qu'entre différentes versions des produits.

L'outil de migration prend en charge Borland Delphi 7 et toutes les versions ultérieures.

Avec l'outil de migration des paramètres, vous pouvez :

Vous pouvez trouver l'outil migrationtool.exe via le chemin d'accès suivant : C:\Program Files (x86)\Embarcadero\Studio\16.0\bin.

Consultez la page Outil de migration des paramètres pour plus de détails.

Nouvelles options de signature du code des applications iOS

Vous pouvez désormais sélectionner les données de signature que RAD Studio utilise pour signer le code de vos applications iOS.

Sur la page Approvisionnement, pour les types de construction Périphérique iOS (Développement, Ad hoc, Magasin d'applications) vous pouvez sélectionner :

Si vous laissez l'une de ces valeurs sur Auto, RAD Studio sélectionne un profil d'approvisionnement et un certificat développeur appropriés, qui correspondent au CFBundleIdentifier et au périphérique cible. Pour plus de détails, voir Compléter la page Approvisionnement.

Nouvelle option pour la construction de fichiers binaires iOS prenant en charge iOS 32 bits et 64 bits

Depuis le 1er février 2015 (EN), toutes les nouvelles apps iOS soumises à l'App Store doivent inclure la prise en charge 64 bits. Ainsi, les applications destinées aux périphériques exécutant iOS 32 bits doivent également prendre en charge iOS 64 bits.

L'EDI fournit une nouvelle option de compilateur pour la plate-forme cible iOS 64 bits, Générer le fichier binaire universel iOS (armv7 + arm64).
Lorsque vous activez cette option et déployez votre application, l'EDI génère un fichier binaire multi-architecture (EN) (Fat binary) qui prend en charge iOS 32 bits et 64 bits.

Vous pouvez trouver cette option dans :

  • Projet > Options > Compilateur Delphi > Compilation > Autres options (Delphi)
  • Projet > Options > Compilateur C++ > Avancées > Autres options (C++)

Le droit 'Recevoir les notifications push' n'est plus nécessaire pour les applications iOS

Pour activer la réception des messages de notification push dans les applications iOS, il n'est pas nécessaire de définir d'autres options de projet relatives aux droits.
RAD Studio signe le code de l'app iOS en utilisant un profil d'approvisionnement qui autorise les services de notification push sur le périphérique où l'app est installée. Voir Notifications push pour de plus amples informations.

Intégration de Castalia

XE8 intègre Castalia avec un menu dédié dans l'EDI. Castalia ajoute des fonctionnalités vous permettant d'effectuer certaines tâches plus facilement. Les fonctionnalités de Castalia sont divisées en 4 sections :

  • Fonctionnalités visuelles : éléments visuels ajoutés à l'éditeur de code pour une meilleure compréhension de la structure et de l'exécution du flux de votre code.
  • Contrôles dans l'éditeur de code : contrôles ajoutés à l'EDI pour vous aider à naviguer dans votre code.
  • Fonctionnalités non visuelles : ensemble de raccourcis qui fournit des fonctionnalités à utiliser lors de l'écriture du code.
  • Menu Castalia : fonctionnalités et statistiques de votre code qui sont accessibles par le biais du nouveau menu dédié.

Présentation de Castalia vous montre comment utiliser les fonctionnalités de Castalia.

Programme d'expérience client

L'EDI intègre une nouvelle option pour participer au programme d'expérience client. Vous pouvez rejoindre ce programme afin d'aider Embarcadero à améliorer RAD Studio.

Le programme d'expérience client collecte des informations sur l'usage de l'EDI pendant votre session (la fréquence de lancement de RAD Studio, la navigation dans l'EDI, etc.). Ces informations sont entièrement anonymes, puisque le programme ne collecte pas ni ne transmet des informations identifiables, privées ou personnelles.

Vous pouvez trouver cette option dans :

Pour plus de détails, voir la page Programme d'expérience client.

Changements visuels et personnalisation

Dans XE8, l'apparence de l'EDI a changé. Voir Clés de registre système pour les paramètres visuels de l'EDI pour de plus amples informations sur la personnalisation de l'apparence de l'EDI. Pour annuler certains changements et redonner l'apparence de l'EDI de XE7 à l'EDI de XE8, procédez comme suit :

  1. Créez un nouveau document texte (vous pouvez utiliser n'importe quel éditeur de texte) et copiez-y le texte suivant : Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Embarcadero\BDS\16.0\ModernTheme] "FontName"="MS Sans Serif" "FontSize"=dword:0000000a "MainToolBarColor"="clBtnFace"
  2. Enregistrez le fichier avec l'extension .reg.
  3. Exécutez le fichier. Un avertissement concernant la modification du registre s'affiche. Vous devez l'accepter pour appliquer les changements.
    Remarque : Vous devez avoir des permissions Administrateur pour pouvoir exécuter les fichiers script de registre. Si l'EDI était ouvert lorsque vous avez défini ou changé les valeurs de registre, vous devez redémarrer l'EDI pour que les valeurs prennent effet.

Modifications relatives aux bases de données et à la connectivité pour XE8

Modifications relatives à FireDAC

Vous devez mettre à jour votre code FireDAC existant pour tenir compte des modifications API suivantes :

Membres de base* Modifications :

FireDAC.Comp.Client.TFDAdaptedDataSet.OnError
FireDAC.Comp.Client.TFDCustomCommand.OnError
FireDAC.Comp.Client.TFDCustomConnection.OnError
FireDAC.Comp.Client.TFDCustomConnection.OnRecover
FireDAC.Comp.Client.TFDCustomSchemaAdapter.OnError
FireDAC.Comp.Client.TFDCustomTableAdapter.OnError
FireDAC.Comp.Client.TFDRdbmsDataSet.OnError
FireDAC.Comp.Script.TFDScript.OnError
FireDAC.Phys.TFDPhysDriverService.OnError

Dans XE7, AInitiator était une interface objet IFDStanObject constante.

Dans XE8, AInitiator est le même objet, sauf que vous le recevez sous la forme d'une instance de TObject.

FireDAC.Comp.Client.TFDCustomConnection.OnLogin

Dans XE7, le deuxième paramètre était AConnectionDef, une interface objet IFDStanConnectionDef constante.

Dans XE8, le deuxième paramètre est maintenant AParams, une instance de TFDConnectionDefParams qui contient les mêmes données que AConnectionDef.Params dans XE7.

FireDAC.Comp.UI.TFDGUIxScriptDialog.OnProgress

Dans XE7, AInfoProvider était une interface objet IFDGUIxScriptDialogInfoProvider constante.

Dans XE8, AInfoProvider est le même objet, sauf que vous le recevez sous la forme d'une instance de TObject.

* Les modifications affectent également les membres hérités listés.

Services de mobilité d'entreprise

Application EMS Management Console

L'application EMS Management Console est une application exemple livrée avec RAD Studio que vous pouvez utiliser pour gérer les données EMS stockées dans votre serveur EMS et envoyer des messages de notification push EMS vers vos périphériques recensés. Vous pouvez personnaliser cette application selon vos besoins, en utilisant le code source exemple livré avec RAD Studio.

Avec l'Application EMS Management Console, vous pouvez :

Pour de plus amples informations sur la procédure d'utilisation de l'application EMS Management Console et sur l'emplacement du code source, voir Application EMS Management Console.

Compatibilité des bases de données avec le périphérique iOS 64 bits

La plate-forme Périphérique iOS 64 bits a été ajoutée à XE8. La compatibilité de cette nouvelle plate-forme avec le système de gestion des bases de données (SGBD) est identique à la compatibilité proposée par la plate-forme Périphérique iOS 32 bits :

Modifications relatives au Concepteur de styles de bitmaps pour XE8

  • Le Concepteur de styles de bitmaps a été mis à jour pour offrir de nouveaux templates de style pour les versions actuellement prises en charge d'iOS et d'Android.
  • Le bouton Nouveau style présente une sélection de templates de style, y compris iOS, Android, VCL, Windows, Mac OS X, Metropolis UI et divers styles vierges.
  • Vous pouvez créer des objets pour différentes résolutions en utilisant les nouvelles commandes du menu Style telles que Ajouter de nouveaux objets pour le graphique résolution 1.5x, Ajouter de nouveaux objets pour le graphique résolution 2.0x et Ajouter de nouveaux objets pour le graphique résolution 3.0x.
  • Vous pouvez désormais ajouter des templates d'objet en utilisant le nouveau bouton Ajouter un template d'objet de la barre d'outils. En utilisant la structure d'objets par défaut, vous avez seulement besoin d'effectuer des ajustements aux prédéfinitions et d'assigner des propriétés à votre guise.
  • Vous pouvez créer automatiquement d'autres résolutions appropriées de vos objets en utilisant la nouvelle commande de menu contextuel Ajuster automatiquement l'objet pour toutes les résolutions graphiques.
  • Vous pouvez tester vos objets personnalisés (et les tester sous différentes résolutions) en utilisant les nouvelles commandes de menu contextuel Tester le style d'objet.

Modifications relatives aux logiciels tiers pour XE8

Box2D pour Delphi et C++

RAD Studio fournit désormais Box2D, un moteur physique à code source libre pour les jeux. Vous pouvez utiliser Box2D dans les applications Delphi et C++ RAD Studio.

Modifications relatives au débogueur pour XE8

Le débogage des apps iOS64 n'est pas pris en charge (F9 n'est pas activé lorsque Périphérique iOS 64 bits est la plate-forme cible).
A la place, vous devez définir Périphérique iOS 32 bits en tant que plate-forme cible, terminer votre débogage, puis reconstruire votre app pour la plate-forme cible Périphérique iOS 64 bits.

Modifications relatives au framework de tests pour XE8

RAD Studio fournit désormais une prise en charge de DUnitX pour Delphi et C++Builder. Ce framework de tests vous permet de développer et d'exécuter des tests sur des applications Win32, Win64 et MacOSX. DUnitX fournit son propre ensemble de méthodes pour tester un grand nombre de conditions. Ces méthodes représentent des assertions communes bien que vous puissiez créer vos propres assertions personnalisées.

Pour de plus amples informations, voir Présentation de DUnitX.

Modifications relatives à l'utilitaire graphique pour XE8

Nouveau gestionnaire de packages GetIt

RAD Studio fournit un nouvel utilitaire graphique : GetIt. GetIt est un gestionnaire de packages qui vous permet de naviguer, de télécharger et d'installer facilement et gratuitement des packages GetIt sur RAD Studio. Les packages GetIt fournissent des bibliothèques, des composants, des extensions de l'EDI, des SDK et davantage.

Pour de plus amples informations, voir GetIt.

Modifications relatives à l'utilitaire de ligne de commande pour XE8

Deux nouveaux compilateurs pour iOS 64 bits :

Modifications relatives aux exemples d'applications pour XE8

Les exemples qui ont été retirés de la version XE7 sont disponibles sur SourceForge et le Docwiki de XE6

Voir Exemples produit des anciennes versions (EN) pour plus d'informations sur l'accès aux exemples produit qui ont été retirés de RAD Studio XE7.

Modifications relatives à l'aide

Nouveau système d'aide hors ligne (l'aide CHM remplace l'aide H2)

Les fichiers d'aide hors ligne livrés avec RAD Studio sont désormais au format Aide HTML compilée de Microsoft, également appelé CHM. Pour plus d'informations, voir Utilisation de l'aide - CHM. Auparavant, l'aide hors ligne était livrée au format H2 et pouvait être visualisée en utilisant Microsoft DExplore.

La visionneuse Aide HTML compilée de Microsoft peut uniquement afficher l'aide hors ligne. Pour accéder à l'aide en ligne, vous devez soit l'ouvrir vous-même, soit cliquer sur Page Wiki en cours en bas de n'importe quelle page de l'aide hors ligne. Vous ne pouvez plus choisir d'afficher l'aide en ligne ou l'aide hors ligne dans la visionneuse de l'aide hors ligne.

Vous pouvez créer vos propres fichiers d'aide CHM et les lier à RAD Studio. Pour de plus amples informations, voir Fournir l'aide pour vos composants.

Rubriques