Nouveautés de Berlin

De RAD Studio
Aller à : navigation, rechercher

Remonter à Nouveautés des releases précédentes

Sommaire

La release Berlin contient de nouvelles fonctionnalités ainsi que des améliorations.

Amélioration de l'expérience utilisateur relative à l'installation

Nous avons amélioré l'expérience utilisateur de l'installation de RAD Studio afin de la rendre plus personnalisable.

Désormais, un nouvel installateur installe rapidement une version basique de RAD Studio fonctionnant comme un éditeur de texte brut.

Par la suite, le nouvel installateur de fonctionnalités vous permet de sélectionner les fonctionnalités de RAD Studio (les langages de programmation, les plates-formes cible, etc.) dont vous voulez disposer dans votre installation initiale de RAD Studio. Seules les fonctionnalités sélectionnées sont installées, ce qui limite l'utilisation de la bande passante et entraîne des gains de temps et d'espace disque.

A tout moment, vous pouvez ajouter ou retirer des fonctionnalités de RAD Studio en utilisant le nouveau Gestionnaire de fonctionnalités.

Certains logiciels qui se trouvaient dans l'installateur RAD Studio de Seattle se trouvent maintenant dans le Gestionnaire de packages GetIt. Pour de plus amples informations, voir Logiciels supplémentaires facultatifs dans les Notes d'installation.

L'installateur RAD Studio de Seattle est toujours disponible en tant qu'installateur hors ligne ; vous pouvez l'utiliser si votre système ne dispose pas d'une connexion Internet opérationnelle pendant l'installation.

Voir Installation pour des instructions sur l'installation et de plus amples informations.

FireMonkey

Prise en charge de Android 6.0

Android 6.0 (API Level 26) est désormais pris en charge.

Carnet d'adresses pour iOS et Android

Sur les plates-formes mobiles (Android et iOS), FireMonkey prend en charge le composant TAddressBook qui permet à vos applications d'accéder au périphérique Carnet d'adresses. Les fonctionnalités élémentaires de ce composant sont les suivantes :

  • Envoi d'une requête pour accéder au carnet d'adresses d'un périphérique et obtention du statut d'accès.
  • Accès à toutes les sources définies dans le carnet d'adresses du périphérique.
  • Extraction de tous les contacts ou de contacts individuels appartenant à une source spécifiée.
  • Extraction des contacts appartenant à des groupes spécifiés.
  • Modification ou suppression des contacts et des groupes existants.
  • Création de nouveaux contacts.
  • Création de nouveaux groupes.

Pour davantage d'informations et d'autres exemples, voir TAddressBook et Tutoriel mobile : Utilisation du composant Carnet d'adresses (iOS et Android).

Concepteur de styles amélioré

Le Concepteur de styles a subi plusieurs changements et améliorations, tels que :

  • Prise en charge du Presse-papiers, du clavier et de la sélection multiple dans la vue Structure.
  • Panneau Aperçu
  • Prise en charge du zoom
LondonFireMonkeyStyleDesigner.png

Nouveau Concepteur d'élément de vue liste

Le contrôle de vue liste prend désormais en charge un nouveau type d'apparence d'élément (également disponible pour le mode Edition), DynamicAppearance, que vous pouvez utiliser pour personnaliser le contenu de chaque élément dans votre vue liste : étiquettes, images, boutons, etc.

Vous pouvez également cliquer avec le bouton droit de la souris sur la vue liste du Concepteur de fiches et sélectionner la nouvelle entrée Basculer en mode Conception afin d'activer un éditeur visuel d'éléments de vue liste qui vous permet de personnaliser visuellement les contrôles des éléments de votre vue liste.

LondonListViewDesignMode.png

Dans ce mode de conception, vous pouvez utiliser l'inspecteur d'objets afin d'ajouter de nouveaux éléments à votre conception d'élément vue liste, et utiliser à la fois l'inspecteur d'objets et le Concepteur de fiches pour les personnaliser.

Service de prise en charge du Presse-papiers étendu

FireMonkey dispose maintenant de l'interface IFMXExtendedClipboardService qui offre de nouvelles fonctionnalités. Par exemple, l'interface IFMXExtendedClipboardService vous permet de :

  • Enregistrer les formats personnalisés des utilisateurs.
  • Copier/coller les formats personnalisés des utilisateurs.
  • Obtenir directement le contenu du Presse-papiers.

Amélioration de l'éditeur de liste d'images

Maintenant, la boîte de dialogue Ajouter des images de l'éditeur de liste d'images vous permet d'ajouter plusieurs images à la fois.

Améliorations de la grille

La logique de présentation et le modèle de données des contrôles grille ont été détachés des contrôles grille. Parmi d'autres améliorations, cette modification majeure de l'API rend possible l'ajout, dans le futur, de la prise en charge de la présentation native pour les contrôles grille. Voir Modifications relatives aux contrôles grille FireMonkey dans Berlin.

Avertissement : Lorsque vous effectuez la migration vers Berlin d'un ancien projet utilisant des contrôles grille, vous devez inclure, parmi d'autres éléments, la nouvelle unité FMX.Grid.Style dans l'une des clauses uses de votre projet. Cette unité est automatiquement incluse dans les nouveaux projets.

Prise en charge des résolutions élevées sur Windows

FireMonkey fournit des améliorations des résolutions élevées, telles que des styles multi-résolution pour Windows prenant en charge pour les moniteurs 120 et 144 DPI.

Prise en charge améliorée des touches accélératrices

Désormais, la prise en charge des touches accélératrices est disponible pour les contrôles suivants :

Prise en charge des styles de fontes étendus

TFont propose une nouvelle propriété, StyleExt, permettant de gérer les fontes qui ont des types étendus de poids, d'obliques ou d'étirement.

Modifications de la propriété Hint

Dans les versions précédentes de RAD Studio, la propriété Hint était publiée dans tous les contrôles FireMonkey héritant de TControl. Désormais, la propriété Hint est publiée dans les contrôles FireMonkey listés dans Modifications de la propriété Hint dans Berlin.

Avertissement : Assurez-vous que vos applications n'utilisent pas la propriété Hint avec un contrôle qui n'est pas listé dans ce tableau. Sinon, vos applications ne pourront pas être compilées.

Simplification de l'API des dialogues

Plusieurs procédures et fonctions permettant d'afficher des boîtes de dialogue sont désormais obsolètes et ont été remplacées par les procédures et fonctions des nouveaux services de plate-forme IFMXDialogServiceAsync et IFMXDialogServiceSync qui fournissent la prise en charge des boîtes de dialogue, respectivement synchrones et asynchrones.

Le tableau suivant résume les changements de l'API :

Membres obsolètes Nouveaux membres
  • FMX.Dialogs.MessageDlg
  • FMX.Dialogs.MessageDlgPos
  • FMX.Dialogs.MessageDlgPosHelp
  • FMX.Platform.IFMXDialogService.MessageDialog
  • FMX.Dialogs.InputBox
  • FMX.Dialogs.InputQuery
  • FMX.Platform.IFMXDialogService.InputQuery
* ShowMessage et ShowMessageFmt ne sont pas vraiment obsolètes. Néanmoins, il est préférable d'utiliser ShowMessageAsync ou ShowMessageSync.

Deux nouvelles classes d'assistance ont également été créées : TDialogServiceAsync et TDialogServiceSync. Ces classes d'assistance fournissent des méthodes de classe et des fonctions qui vous permettent d'appeler les nouvelles procédures et fonctions des boîtes de dialogue sans recourir à une instance de service de plate-forme de la boîte de dialogue correspondante.

Autres modifications relatives à FireMonkey

  • La nouvelle propriété AbsoluteTargetRect des sélecteurs vous permet de définir la position où doit apparaître un sélecteur.
  • Les vues liste affichent des animations tactiles sur Android.
  • AppAnalytics utilise le protocole HTTPS au lieu du protocole HTTP.
  • TMediaPlayer essaie maintenant de lire le fichier média spécifié avec le codec par défaut de la plate-forme cible si l'extension du fichier média n'a pas été recensée.
  • Le type Double remplace le type Extended.
  • Les propriétés obsolètes StrokeThickness, StrokeCap, StrokeDash et StrokeJoin de TShape sont supprimées. Utilisez la propriété TShape.Stroke intégrée ayant le type TStrokeBrush. Les objets TStrokeBrush disposent des propriétés Thickness, Cap, Dash et Join  ; vous devez utiliser ces propriétés à la place des propriétés obsolètes supprimées.
  • IFMXWindowService.GetWindowScale est maintenant obsolète. Utilisez la propriété Scale d'un handle de fiche pour obtenir l'échelle de cette fenêtre.

VCL

  • Les contrôles ruban ne sont plus inclus dans l'installation de RAD Studio. Vous pouvez les installer séparément en utilisant le Gestionnaire de packages GetIt.
  • AppAnalytics utilise le protocole HTTPS au lieu du protocole HTTP.
  • La méthode CreateRoot de l'unité Vcl.Shell.ShellCtrls est maintenant virtuelle. Les champs racine (root) provenant de la même unité ne sont plus privés mais protégés.

EMS

Prise en charge du serveur Apache

Vous pouvez dorénavant exécuter le serveur EMS et la console EMS dans le serveur Apache sur un environnement de production.

Pour plus d'informations, voir installation et exécution du serveur EMS et de la console EMS dans le serveur Apache.

Domaines croisés de l'API du serveur EMS

Le serveur EMS autorise désormais les appels de domaines croisés à son API depuis différents domaines. Pour plus d'informations, voir Domaines croisés de l'API du serveur EMS.

EdgeModules EMS

EMS prend maintenant en charge la nouvelle fonctionnalité EdgeModules EMS, une extension de la fonctionnalité Serveur EMS.

Dans Berlin, vous pouvez exécuter les EdgeModules EMS en tant qu'applications autonomes et les recenser dans le serveur EMS. La communication du EdgeModule EMS avec le serveur EMS est bidirectionnelle.

Pour plus d’informations, voir EdgeModules EMS.

Ressource EdgeModules EMS

La console EMS affiche maintenant deux nouvelles tables avec toutes les informations sur les EdgeModules EMS et ses ressources chargées dans le serveur EMS.

L'application EMS Management Console comporte maintenant deux nouveaux onglets pour récupérer, mettre à jour et supprimer facilement les données des EdgeModules EMS recensés et leurs ressources. Voir Utilisation de l'application EMS Management Console pour plus d'informations sur la gestion des données des EdgeModules EMS dans le serveur EMS.

Présentation de ThingPoint

Utilisez les nouvelles applications ThingPoint afin d'étendre les fonctionnalités du serveur EMS pour l'Internet of Things (IoT). Une application ThingPoint vous permet de collecter des données depuis les périphériques ThingConnect à proximité, de prétraiter et post-traiter des données IoT et de les sauvegarder dans le serveur EMS.

L'exemple EMS.ThingPoint IoT montre comment utiliser une application ThingPoint pour étendre le serveur EMS et comment ces données sont utilisées par une application client EMS.

Pour de plus amples informations sur les applications ThingPoint, voir Présentation de ThingPoint.

Ressource API EMS

Une nouvelle ressource dans le serveur EMS procure de la documentation API pour toutes les ressources et méthodes des points de terminaisons fournis par le serveur EMS. La documentation API peut être consultée aux formats YAML et JSON.

Pour de plus amples informations, voir Ressource API EMS

Documentation API personnalisée

Le serveur EMS fournit désormais les outils permettant d'écrire de la documentation API pour les nouvelles ressources des packages de serveur EMS étendus. La nouvelle documentation est créée en ajoutant des attributs aux nouvelles ressources et aux nouveaux points de terminaison. La documentation API peut être exposée aux formats YAML et JSON, et est accessible via HTTP.

Pour de plus amples informations, voir la Documentation API personnalisée.

DataSnap

Prise en charge des flux JSON

Nouvelle classe TDBXJSONStream permettant de prendre en charge les flux JSON entre des serveurs DataSnap et des clients.

Utilisez TDBXJSONStream pour lire ou écrire un flux d'objets JSON, mais pas les deux simultanément.

Autres modifications relatives à DataSnap

  • Les clients DataSnap ne dépendent plus de OpenSSL ou de Indy pour exécuter des requêtes HTTPS.

Web Broker

Les projets C++ des versions précédentes utilisant Web.WebReq doivent être mis à jour

Le code des projets C++ des versions antérieures, tels que les applications DataSnap, Web Broker et Services Web utilisant l'unité Web.WebReq doit être mis à jour par compatibilité avec RAD Studio Sydney.

Vous devez retirer la ligne suivante du fichier projet cpp :

#pragma link "Web.WebReq"

Autres modifications relatives au WebBroker

  • La gestion des chaînes a été améliorée :
    • L'API WebBroker utilise par défaut le codage UTF-8, au lieu de l'ANSI.
    • Les types de paramètres et de résultat ont été changés de AnsiString en String, UTF8String ou TBytes.

FireDAC

Améliorations pour DB2

Améliorations pour MongoDB

Améliorations pour Advantage

  • Pour Advantage v12 et ultérieurs :
    • Amélioration de TFDADSBackup et TFDADSRestore pour ajouter la prise en charge de l'archivage de sauvegardes.
    • Prise en charge du type de données GUID.
  • Amélioration de la prise en charge des tables cryptées :

Améliorations pour InterBase

Améliorations pour Firebird

Améliorations pour Informix

Amélioration pour ODBC

Améliorations pour Oracle

Améliorations pour PostgreSQL

  • Pour PostgreSQL 9.2 et ultérieurs :
  • Pour PostgreSQL 9.3 et ultérieurs :
    • Prise en charge des objets identifiant les champs d'erreur. Dans ce but, les propriétés suivantes ont été ajoutées à FireDAC.Phys.PGWrapper.TFDPgError :
      • SchemaName : contient le nom du schéma stockant l'objet de base de données associé à l'erreur.
      • TableName : contient le nom de la table associée à l'erreur.
      • ColumnName : contient le nom de la colonne de table associée à l'erreur.
      • TypeName : contient le nom du type de table associé à l'erreur.
      • ConstraintName : contient le nom de la contrainte associée à l'erreur.
  • Pour PostgreSQL 9.4 et ultérieurs :
  • Prise en charge de la version 9.5 des client et serveur PostgreSQL.
  • Prise en charge améliorée pour les tableaux contraints :

Améliorations pour SQLite

  • Binaires SQLite mis à jour vers la version 3.9.2
  • Pour SQLite v3.8.9 et ultérieurs :
    • Prise en charge des informations étendues sur les colonnes d'index, y compris si elles sont descendantes ou ascendantes, ou si ce sont des colonnes de base ou d'expression.
    • Prise en charge des index sur les expressions.
  • Pour macOS :
    • Bibliothèque client optimisée, préconstruite. Vous devriez déployer libcgsqlite3.dylib lorsque vous construisez des applications pour macOS qui utilisent FireDAC et SQLite.
    • Prise en charge des liaisons statiques, en utilisant libcgsqlite3.dylib.
    • Prise en charge du cryptage.

Autres modifications relatives à FireDAC

Service Cloud

Amazon

AmazonAPI bénéficie de nouvelles prises en charge :

Azure

Bibliothèque client REST

  • L'unité REST.Exception est à présent obsolète. Ses classes appartiennent maintenant à l'unité REST.Types.

LiveBindings

  • Les raccourcis d'évaluation sont une nouvelle fonctionnalité, activée par défaut, de certains composants de liaison. Ils améliorent considérablement la performance de LiveBinding lors du remplissage de contrôles basés sur des listes ou sur des tables à l'aide d'expressions de liaison simples. Voir Utilisation des raccourcis d'évaluation.
  • La classe TConverterUtils de System.Bindings.Outputs est maintenant publique. TConverterUtils fournit un ensemble d'utilitaires pour assigner/convertir un type de valeur en autre type de valeur.

Framework de connectivité ThingConnect IoT

Remarque : Les composants ThingConnect sont disponibles en tant que téléchargements séparés via le Gestionnaire de packages GetIt.

ThingConnect désactive les périphériques intelligents, les capteurs et les objets connectés Internet of Things (IoT) prêts à l'emploi et personnalisés dans les composants API faciles à utiliser. Pour de plus amples informations, voir la documentation ThingConnect.

BeaconFence

Remarque : BeaconFence est disponible sous la forme d'un téléchargement séparé via le Gestionnaire de packages GetIt. Pour obtenir des instructions d'installation relatives à BeaconFence, voir la page suivante.

De nouvelles fonctionnalités ont été ajoutées à BeaconFence dans RAD Studio Berlin. BeaconFence présente les améliorations suivantes :

  • Détection des zones utilisant Position ou PositionInPath.
  • Prise en charge des beacons sur la plate-forme Windows.
  • Personnalisation de la fonction de la position en cours.
  • Prise en charge des beacons Eddystone.
  • Amélioration des performances de calcul.
  • Nouvelle capacité de dessin.
  • Ajout de deux propriétés pour accéder aux dernières positions calculées :
    • LastRawPosition
    • LastPathPosition
  • Nouvelle fonctionnalité permettant d'activer/désactiver des beacons par programme. La propriété UseToPositioning indique si le beacon sera ou non utilisé pour calculer la position.

RTL

Prise en charge de Bluetooth LE et Beacon sur Windows 10

RAD Studio Berlin fournit la nouvelle API WinRT Bluetooth qui prend en charge le Bluetooth Low Energy et les beacons sur la plate-forme Windows 10. Vous pouvez désormais exécuter des applications sur Windows ayant les capacités suivantes :

Amélioration des performances de la découverte Bluetooth LE

La RTL fournit une nouvelle implémentation de filtre d'analyse BLE qui bénéficie des nouvelles puces BLE basse consommation.

Vous pouvez maintenant rechercher des périphériques BLE spécifiques par le biais de filtres d'analyse indépendants personnalisés. A cette fin, vous pouvez :

Bluetooth LE inclut de nouveaux événements pour gérer les abonnements aux caractéristiques

Le composant TBluetoothLE fournit deux nouveaux événements permettant de gérer les abonnements aux caractéristiques du serveur GATT :

Les événements OnConnect et OnDisconnect existaient déjà et sont à présent inclus dans le composant TBluetoothLE :

  • L'événement OnConnect est déclenché lorsque vous vous connectez à un périphérique distant du serveur GATT.
  • L'événement OnDisconnect se déclenche lorsque vous vous déconnectez d'un périphérique distant du serveur GATT.

Prise en charge des beacons au format Eddystone

La RTL ajoute une prise en charge pour utiliser les beacons au format Eddystone (EN). Il y a trois types possibles :

Amélioration des performances d'analyse des beacons

L'ajout de nouveaux filtres d'analyse BLE vous permet d'améliorer le framework des beacons afin de :

Désormais, vous n'avez pas besoin de recenser un beacon que vous voulez surveiller. A la place, vous pouvez :

  • Définir le mode Extended sur votre périphérique TBeacon.
  • Spécifier dans la propriété ModeExtended les beacons non recensés que vous voulez surveiller.
  • Utiliser la nouvelle méthode StartScan afin de rechercher les beacons spécifiés.

Remarque : La dernière étape vous permet de rechercher plusieurs types de beacons simultanément.

Pour de plus amples informations, voir comment recenser les beacons et comment analyser les beacons.

Prise en charge du format de beacon Eddystone par le composant TBeaconDevice

L'ajout des beacons Eddystone vous permet de fournir la prise en charge de ce format dans le composant TBeaconDevice.

Le TBeaconDevice vous permet maintenant d'exécuter sur votre périphérique BLE des applications qui diffusent des données de proximité avec les spécifications (EN) d'un beacon Eddystone.

Vous pouvez sélectionner les formats EddystoneUID et EddystoneURL par le biais de la propriété BeaconType.

Prise en charge des plates-formes :

  • Les périphériques Android permettent la diffusion du format Eddystone, sur les versions 5.0 et supérieures.
  • Les périphériques iOS permettent uniquement la diffusion des cadres iBeacon.
  • Les périphériques Windows n'acceptent pas le format Eddystone, puisque l'API WinRT pour BLE ne permet pas la personnalisation du ServiceData diffusé.

Améliorations relatives au tethering d'apps

Le tethering d'app présente les nouveautés suivantes :

Prise en charge des requêtes HTTP asynchrones

Vous pouvez désormais envoyer des requêtes HTTP de façon asynchrone afin que l'exécution de votre application ne s'arrête pas au cours d'un téléchargement.

Si vous utilisez les composants client HTTP, consultez Rendre les requêtes asynhrones. Si vous utilisez l'API du client HTTP, consultez THTTPClient.

Prise en charge des fichiers ZIP cryptés

TZipFile fournit un événement (ou un callback) que vous pouvez gérer de façon à décompresser des fichiers ZIP cryptés comme des fichiers ZIP protégés par mot de passe lors des opérations d'extraction.

Améliorations des listes de chaînes

TStrings et ses sous-classes, telles que TStringList, proposent les fonctionnalités suivantes :

  • AddPair, pour ajouter des paires clé-valeur à des listes de chaînes utilisant le codage de style fluent (EN).
  • KeyNames, pour obtenir une liste de clés depuis une liste de chaînes contenant des paires clé-valeur.
  • Options, pour contrôler facilement de nombreuses propriétés booléennes de la liste de chaînes.
  • SetStrings, pour copier les chaînes d'un autre objet TStrings. Elle est similaire à Assign, mais sans copier les propriétés multiples copiées par Assign.
  • TrailingLineBreak, qui détermine si la propriété Text doit contenir un saut de ligne après la dernière ligne.
  • Updating, qui indique si la liste de chaînes est au milieu d'une mise à jour.
  • UseLocale, qui détermine l'implémentation que la liste de chaînes doit utiliser pour la comparaison de chaînes.
  • ExtractName propose un nouveau champ (AllNames) qui détermine le retour de ExtractName quand la chaîne à analyser n'est pas une paire clé-valeur.

TStringList propose aussi de nouveaux constructeurs surchargés pour faciliter la création d'instances initialisées de TStringList.

Améliorations de TMemIniFile

TMemIniFile propose les fonctionnalités suivantes :

Prise en charge de la mise en tampon de TFileStream

TFDFileStream a été déplacé de FireDAC.Stan.Util vers System.Classes et a été renommé en TBufferedFileStream.

TBufferedFileStream est un descendant de TFileStream qui optimise plusieurs écritures et lectures consécutives de petite taille. Autrement dit, TBufferedFileStream ajoute la prise en charge de la mise en tampon de TFileStream.

Remarque: TBufferedFileStream n'offre pas de gain de performance pour la lecture ou l'écriture à des positions aléatoires, ou pour des lectures ou écritures de grande taille.

Modification de la syntaxe de chemins d'accès JSON aux propriétés des objets

La prise en charge de la syntaxe de chemins JSON pour accéder aux propriétés des objets contenant des points dans leur nom a changé dans Berlin :

Exemple de syntaxe Seattle Berlin

root."child.name"

Checkmark.svg

root["child.name"]

Checkmark.svg
Checkmark.svg

root['child.name']

Checkmark.svg

Optimisation des expressions régulières et remplacement de chaîne

L'utilisation des expressions régulières est désormais optimisée de deux façons : les temps d'exécution et la consommation de mémoire.

Au sujet du temps d'exécution, le tableau suivant montre un exemple du gain de vitesse en utilisant les expressions régulières sur les plates-formes Windows et Android. Ces exemples ont été calculés pour une analyse d'expression régulière simple (fichier de 170 Ko).

Plate-forme Temps d'exécution (ms) Gain de temps
Avant Optimisé
Windows (Intel i7, Windows 7) 5900 29 ~310x
Android (Motorola E(2ème génération), Android 5.0.2) 47075 420 ~111x
Remarque : Les valeurs de gain de temps indiquées dans ce tableau sont spécifiques à cet exemple. Le gain de temps que vous pouvez obtenir peut varier en fonction de l'expression régulière spécifique et de la machine de traitement.

Concernant l'optimisation de la consommation mémoire, un nombre très important de correspondances n'affecte plus significativement la consommation de mémoire.

Les performances de la fonction StringReplace ont été améliorées elles aussi.

Améliorations de la connexion HTTP

  • Deux nouveaux délais d'attente : ConnectionTimeout et ResponseTimeout pour le framework et le composant HTTP.

Fonctions URLEncode / URLDecode

La fonctionnalité d'encodage et de décodage d'URL a été déplacée vers System.NetEncoding.

Les fonctions System.Net.URLClient.TURI.URLEncode et System.Net.URLClient.TURI.URLDecode sont désormais obsolètes. Utilisez System.NetEncoding.TURLEncoding.URLDecode et System.NetEncoding.TURLEncoding.Encode à la place.

Nouvelles fonctions ajoutées à System.NetEncoding :

Utilisez TMessageBase au lieu de TMessage pour les projets C++

La classe TMessage de System.Messaging a été renommée en TMessageBase afin d'éviter les ambiguïtés dans les projets C++ incluant d'autres unités gérant également des messages, comme Winapi.Messages.

TMessage reste un alias de TMessageBase.

Fonctions C++ ajoutées aux types TRect, TRectF, TPoint et TPointF

Nouvelles fonctions C++ ajoutées à System.Types :

Autres modifications relatives à la RTL

API natives

Compilateurs Delphi

Amélioration des performances de compilation des génériques

Les compilateurs Delphi ont subi plusieurs changements concernant les génériques ; ils ont contribué aux améliorations suivantes :

  • L'analyse des génériques est jusqu'à trois fois plus rapide.
  • La performance des compilateurs DCC32, DCC64 et DCCOSX pour la liaison de projets qui utilisent beaucoup les génériques a été augmentée.

Attributs pris en charge par tous les compilateurs

Désormais, tous les compilateurs Delphi prennent en charge les attributs suivants :

Autres améliorations du compilateur Delphi

Compilateurs C++

Mise à niveau de BCCAARM et BCCIOSARM

BCCAARM et BCCIOSARM ont été mis à jour pour utiliser Clang 3.3 et LLVM 3.3.

Meilleure prise en charge de C++ pour les types Delphi

Dans les compilateurs C++ améliorés par Clang :

Modifications apportées aux options C++

Dans les compilateurs C++ améliorés par Clang :

  • L'option de ligne de commande -PC utilisée pour activer la compilation parallèle sur la ligne de commande est maintenant obsolète. Utilisez --jobs=<N> à la place. Pour de plus amples informations, voir Utilisation de la compilation parallèle.
  • L'option de ligne de commande -fmath-errno utilisée pour requérir les fonctions mathématiques dans le but d'indiquer des erreurs est maintenant configurable depuis l'EDI. Vous pouvez la trouver dans la section Options de virgule flottante dans Projet > Options > Compilateur C++ > Avancées. Par défaut, elle est activée pour les compilateurs C++ améliorés par Clang.

Autres modifications relatives au compilateur C++

  • Désormais, le compilateur BCC32C fournit la vérification des dépendances. La commande Make compile seulement les fichiers qui ont été modifiés depuis la dernière construction, de même que les fichiers dont les dépendances ont changé.
  • La bibliothèque compiler-rt (EN) est maintenant disponible pour BCC32C et BCC64.

Suppression des en-têtes anciens

Remarque : Les en-têtes anciens sont fournis uniquement pour Windows et macOS. En aucun cas, vous ne devez inclure (#include) l'ancien en-tête pour iOS ou Android.

Comme prévenu dans Modifications relatives à C++ pour XE8, les en-têtes anciens ont été supprimés dans les cas suivants :

  • Les unités introduites dans RAD Studio XE2 ou versions ultérieures. Cette modification peut générer des erreurs si vous introduisez des en-têtes non qualifiés au lieu des en-têtes complets. Par exemple, pour utiliser l'unité System.SysUtils, introduisez #include <System.SysUtils.hpp> au lieu de #include <SysUtils.hpp>.
  • Certaines unités introduites avant RAD Studio XE2 comme Soap.SOAPMidas. Dans ce cas, Soap.SOAPMidas est à la fois le nom de l'unité et le nom du package. Ainsi, pour éviter les conflits de noms, utilisez #include <Soap.SOAPMidas.hpp> au lieu de #include <SOAPMidas.hpp>.
  • En-têtes de traduction DirectX.

EDI

Concepteur de fiches flottant

Vous pouvez maintenant détacher le Concepteur de fiches dans la VCL et FireMonkey. Vous pouvez activer ou désactiver le Concepteur incorporé dans les options du Concepteur de fiches. Pour détacher le Concepteur de fiches, accédez à Outils > Options > Concepteur de fiches, effacez la case à cocher Concepteur de fiches et cliquez sur OK. Les changements prendront effet la prochaine fois que vous redémarrerez l'EDI.

Aperçu instantané FireUI

L'aperçu instantané FireUI est un nouvel outil inclus dans RAD Studio afin de diffuser la fiche active de l'application en cours de conception vers plusieurs périphériques simultanément, afin de voir en temps réel l'aspect de votre application.

L'aperçu instantané FireUI est constitué de deux parties :

L'aperçu instantané FireUI (IDE) ne nécessite aucune installation supplémentaire et est livré avec une configuration par défaut. Pour configurer des options supplémentaires de l'EDI, voir Aperçu instantané FireUI (Options de l'EDI).

Pour savoir comment obtenir le client, voir Comment obtenir l'aperçu de l'app FireUI.

Dépendances GetIt

Nouvelle page d'options de projet pour gérer les dépendances GetIt.

Cette boîte de dialogue permet de définir les dépendances du projet relatives aux packages du Gestionnaire de packages GetIt.

Vous pouvez trouver la page d'options des Dépendances GetIt sous Projet > Options > Dépendances GetIt.

Pile de signets

La pile de signets est une méthode pour naviguer à travers le code source en ajoutant des signets à votre code dans l'ordre de la pile. Vous pouvez ensuite naviguer en arrière via vos signets en accédant au dernier signet de la pile, qui correspond donc au dernier signet ajouté.

Pour plus de détails, voir Pile de signets et Utilisation de la pile de signets.

Extension de sélection

L'extension de sélection vous permet de sélectionner l'identificateur sous le curseur et d'étendre la sélection à des groupes syntaxiques plus larges tels que les instructions, les lignes, les blocs, les méthodes, etc. Utilisez le raccourci Ctrl+W pour commencer à étendre la sélection.

Pour plus de détails, voir Extension de sélection.

Métriques de toxicité des méthodes

La nouvelle page de projet Métriques de toxicité des méthodes (Projet > Métriques de toxicité des méthodes) affiche des métriques relatives aux fonctions de votre projet actif que vous pouvez utiliser pour trouver des méthodes bien adaptées au refactoring. Vous pouvez exporter vos métriques au format CSV et personnaliser les seuils des métriques clés dans la nouvelle page d'options Métriques de toxicité.

Améliorations de la Vue Structure pour C++

La Vue Structure a subi plusieurs améliorations pour C++, telles que :

Améliorations du service Android

Pour plus de détails, voir Création de services Android.

Prise en charge de l'exécution d'applications iOS Ad-hoc

Vous pouvez désormais exécuter des applications iOS qui sont construites avec l'EDI en utilisant la configuration de plate-forme Ad-hoc.

Fichier info.plist personnalisable

Vous pouvez personnaliser votre fichier info.plist pour les applications macOS et iOS.

Améliorations de la conception des montres intelligentes Android

Maintenant, le Concepteur de fiches fournit :

  • Deux vues spécifiques pour les montres intelligentes Android.
  • Un aperçu de la zone de conception pour quatre montres intelligentes Android différentes.

Pour de plus amples informations, voir Création d'applications pour les montres intelligentes Android.

Nouvelle page d'options Association de fichiers

Dans les versions précédentes, vous deviez sélectionner les extensions de fichier que vous vouliez associer à RAD Studio lors du processus d'installation.

Vous pouvez maintenant configurer les associations de fichiers de RAD Studio sur la nouvelle page d'options Association de fichiers.

Nouvelle option pour afficher les messages d'information depuis le compilateur Delphi

L'EDI vous permet désormais d'afficher des messages d'information depuis le compilateur Delphi dans l'onglet Sortie de la vue Messages.

Dans Projet > Options > Compilateur Delphi, vous pouvez cocher l'option Afficher les messages généraux pour votre projet.

Nouvelle option pour masquer/afficher la barre d'outils de navigation

L'EDI vous permet désormais de masquer la barre d'outils de navigation dans l'éditeur de code.

La nouvelle option Afficher la barre d'outils de navigation est située dans Outils > Options > Options de l'éditeur > Affichage.

Pour plus d'informations, voir Masquer la barre d'outils de navigation.

Prise en charge des résolutions élevées

L'EDI bénéficie de la prise en charge DPI (EN). Il offre une meilleure expérience utilisateur sur les systèmes qui utilisent une valeur DPI supérieure à 96 PPI.

Autres modifications relatives à l'EDI

  • La vue CPU prend en charge le débogage des applications iOS et Android.

Débogueurs

Débogueurs iOS et Android

Débogueur iOS 64 bits

Le débogueur iOS 64 bits propose les fonctionnalités suivantes :

  • Prise en charge d'Unicode
  • Prise en charge améliorée des tableaux, chaînes et caractères Delphi.
  • Prise en charge des tableaux à index de base non-zéro.
  • Prise en charge de l'évaluation des propriétés et des variants.
  • Capacité à définir des points d'arrêt dans les fichiers d'en-tête C++.

Utilitaires

  • L'outil Java2OP.exe fonctionne maintenant avec JDK 8.
  • Nouvel outil SdkTransform.exe. Il permet de convertir des en-têtes Objective-C ou C++ en en-têtes Delphi.

Applications exemple

De nouvelles applications exemple ont été ajoutées à Berlin :

Aide