Nouveautés de Berlin
Remonter à Nouveautés des releases précédentes
Sommaire
- 1 Amélioration de l'expérience utilisateur relative à l'installation
- 2 FireMonkey
- 2.1 Prise en charge de Android 6.0
- 2.2 Carnet d'adresses pour iOS et Android
- 2.3 Concepteur de styles amélioré
- 2.4 Nouveau Concepteur d'élément de vue liste
- 2.5 Service de prise en charge du Presse-papiers étendu
- 2.6 Amélioration de l'éditeur de liste d'images
- 2.7 Améliorations de la grille
- 2.8 Prise en charge des résolutions élevées sur Windows
- 2.9 Prise en charge améliorée des touches accélératrices
- 2.10 Prise en charge des styles de fontes étendus
- 2.11 Modifications de la propriété Hint
- 2.12 Simplification de l'API des dialogues
- 2.13 Autres modifications relatives à FireMonkey
- 3 VCL
- 4 EMS
- 5 DataSnap
- 6 Web Broker
- 7 FireDAC
- 7.1 Améliorations pour DB2
- 7.2 Améliorations pour MongoDB
- 7.3 Améliorations pour Advantage
- 7.4 Améliorations pour InterBase
- 7.5 Améliorations pour Firebird
- 7.6 Améliorations pour Informix
- 7.7 Amélioration pour ODBC
- 7.8 Améliorations pour Oracle
- 7.9 Améliorations pour PostgreSQL
- 7.10 Améliorations pour SQLite
- 7.11 Autres modifications relatives à FireDAC
- 8 Service Cloud
- 9 Bibliothèque client REST
- 10 LiveBindings
- 11 Framework de connectivité ThingConnect IoT
- 12 BeaconFence
- 13 RTL
- 13.1 Prise en charge de Bluetooth LE et Beacon sur Windows 10
- 13.2 Amélioration des performances de la découverte Bluetooth LE
- 13.3 Bluetooth LE inclut de nouveaux événements pour gérer les abonnements aux caractéristiques
- 13.4 Prise en charge des beacons au format Eddystone
- 13.5 Amélioration des performances d'analyse des beacons
- 13.6 Prise en charge du format de beacon Eddystone par le composant TBeaconDevice
- 13.7 Améliorations relatives au tethering d'apps
- 13.8 Prise en charge des requêtes HTTP asynchrones
- 13.9 Prise en charge des fichiers ZIP cryptés
- 13.10 Améliorations des listes de chaînes
- 13.11 Améliorations de TMemIniFile
- 13.12 Prise en charge de la mise en tampon de TFileStream
- 13.13 Modification de la syntaxe de chemins d'accès JSON aux propriétés des objets
- 13.14 Optimisation des expressions régulières et remplacement de chaîne
- 13.15 Améliorations de la connexion HTTP
- 13.16 Fonctions URLEncode / URLDecode
- 13.17 Utilisez TMessageBase au lieu de TMessage pour les projets C++
- 13.18 Fonctions C++ ajoutées aux types TRect, TRectF, TPoint et TPointF
- 13.19 Autres modifications relatives à la RTL
- 14 API natives
- 15 Compilateurs Delphi
- 16 Compilateurs C++
- 17 EDI
- 17.1 Concepteur de fiches flottant
- 17.2 Aperçu instantané FireUI
- 17.3 Dépendances GetIt
- 17.4 Pile de signets
- 17.5 Extension de sélection
- 17.6 Métriques de toxicité des méthodes
- 17.7 Améliorations de la Vue Structure pour C++
- 17.8 Améliorations du service Android
- 17.9 Prise en charge de l'exécution d'applications iOS Ad-hoc
- 17.10 Fichier info.plist personnalisable
- 17.11 Améliorations de la conception des montres intelligentes Android
- 17.12 Nouvelle page d'options Association de fichiers
- 17.13 Nouvelle option pour afficher les messages d'information depuis le compilateur Delphi
- 17.14 Nouvelle option pour masquer/afficher la barre d'outils de navigation
- 17.15 Prise en charge des résolutions élevées
- 17.16 Autres modifications relatives à l'EDI
- 18 Débogueurs
- 19 Utilitaires
- 20 Applications exemple
- 21 Aide
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
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.
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 :
- TLabel
- TButton
- TRadioButton
- TTabItem de TabControl
- TCheckBox
- TPopupBox.Items de TPopupBox
- TTextControl
- TPresentedTextControl
- TCustomAction
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 |
---|---|
|
|
|
|
|
- *
ShowMessage
etShowMessageFmt
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
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 Rio.
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
- Le pilote natif DB2 et le pilote de pont ODBC sont désormais pris en charge pour DB2 AS/400.
- Nouveau paramètre de définition de la connexion :
TxSupported
permettant de désactiver la gestion des transactions FireDAC.
Améliorations pour MongoDB
- Prise en charge des alertes des bases de données. Elle utilise des notifications d'opérations d'insertion sur une collection plafonnée de MongoDB (EN). Pour plus d'informations, voir Alertes des bases de données (FireDAC).
- Nouvelle méthode TMongoDocument.Iterate pour parcourir des éléments de document. Pour plus de détails, voir la nouvelle démo
Object Pascal\Database\FireDAC\Samples\DBMS Specific\MongoDB\ListView
.
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 :
- Capacité à fournir un mot de passe unique pour toutes les tables.
- Prise en charge du service de cryptage/décryptage
Améliorations pour InterBase
- Nouveau composant de service, TFDIBInfo, pour interroger la version, la licence, la configuration ainsi que les informations d'usage du serveur.
- Prise en charge des flux internes du flux de valeur BLOB.
- Prise en charge du type de données tableau InterBase. Voir la nouvelle démo FireDAC.InterBase Arrays pour plus de détails.
- TIBRestoreOptions.roReplace remplace
TIBRestoreOptions.roCreate
.
Améliorations pour Firebird
- Nouveau composant de service, TFDIBInfo, pour interroger la version, la licence, la configuration ainsi que les informations d'usage du serveur.
- Prise en charge des flux internes du flux de valeur BLOB.
- Prise en charge du type de données tableau Firebird. Voir la nouvelle démo FireDAC.InterBase Arrays pour plus de détails.
- TIBRestoreOptions.roReplace remplace
TIBRestoreOptions.roCreate
.
Améliorations pour Informix
- La classe TFDInfxError implémente la prise en charge du renvoi du code d'erreur ISAM.
- Nouveau paramètres de définition de la connexion:
TxRetainLocks
etTxLastCommitted
. - Prise en charge de verrouillage pessimiste.
Amélioration pour ODBC
- Nouveau paramètre de définition de la connexion :
ODBCVersion
=3.8
|3.0
qui est utilisé pour spécifier la version de comportement (EN) du gestionnaire de pilotes ODBC. Définissez-le sur3.8
quand votre application utilise des paramètres de sortie BLOB et que le pilote ODBC prend en charge la version de comportement3.8
. - Prise en charge du mappage des types de données en utilisant les noms de types de données.
Améliorations pour Oracle
- Pour Oracle 10g et ultérieurs :
- Prise en charge des notifications des modifications de requêtes (EN) dans TFDEventAlerter. Pour plus de détails, voir
Object Pascal\Database\FireDAC\Samples\DBMS Specific\Oracle\CQN
.
- Prise en charge des notifications des modifications de requêtes (EN) dans TFDEventAlerter. Pour plus de détails, voir
- Pour Oracle 11g et ultérieurs :
- Un nouveau composant, TFDOracleAdmin, permettant d'administrer une instance de base de données Oracle (EN).
- Prise en charge d'entiers non signés sur 32 bits et d'entiers 64 bits.
- Prise en charge de la récupération implicite de ROWID (EN). Elle est implicitement incluse dans la liste SELECT
SELECT … FOR UPDATE
pour une modification effective des ensembles de données. - Prise en charge des dépassements de délai réseau. Nouveaux paramètres de définition de la connexion
ReadTimeout
etWriteTimeout
.
- Pour Oracle 12c et ultérieurs :
- Prise en charge des types de données 32K VARCHAR2, NVARCHAR2 et RAW.
- Prise en charge du BOOLEAN natif en PL/SQL.
- Prise en charge des colonnes identité (EN), qui sont reconnues comme étant des champs auto-incrémentés.
- Prise en charge des résultats implicites (EN). Vous pouvez utiliser NextRecordSet pour les traiter.
- Amélioration de la détection et de la synchronisation de l'état de transaction.
- Prise en charge de nouveaux modes d'authentification dans le paramètre de définition de la connexion
AuthMode
:SYSASM
,SYSBACKUP
,SYSDG
, etSYSKM
.
Améliorations pour PostgreSQL
- Pour PostgreSQL 9.2 et ultérieurs :
- Prise en charge du type de données JSON.
- Prise en charge des types de plage (EN).
- 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.
- 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 :
- Pour PostgreSQL 9.4 et ultérieurs :
- Prise en charge du type de données JSONB (EN).
- Prise en charge de la version 9.5 des client et serveur PostgreSQL.
- Prise en charge améliorée pour les tableaux contraints :
- Nouveau paramètre de définition de la connexion :
ArrayScanSample
utilisé pour déterminer si les tableaux sont mappés surftArray
ouftDataSet
. - Le
TFDParam.ArrayType=atTable
peut être utilisé pour envoyer des tableaux au serveur.
- Nouveau paramètre de définition de la connexion :
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 OS X :
- Bibliothèque client optimisée, préconstruite. Vous devriez déployer
libcgsqlite3.dylib
lorsque vous construisez des applications pour OS X qui utilisent FireDAC et SQLite. - Prise en charge des liaisons statiques, en utilisant
libcgsqlite3.dylib
. - Prise en charge du cryptage.
- Bibliothèque client optimisée, préconstruite. Vous devriez déployer
Autres modifications relatives à FireDAC
- TFDDataSet.Reconcile ne valide plus les changements rapprochés par défaut. De même, si vous transmettez
True
àTFDDataSet.Reconcile
, les changements rapprochés sont toujours validés, même si UpdateOptions.AutoCommitUpdates vautFalse
. - Le type de TFDVersion est passé de Int64 à UInt64.
- Les unités FireDAC.Phys.ODBCBase et FireDAC.Phys.ODBCWrapper ont été déplacées du package
FireDACODBCDriver240.bpl
vers le packageFireDACCommonODBC240.bpl
. - Vous pouvez spécifier un ensemble d'options de fusion dans les appels à TFDDataSet.MergeDataSet.
Service Cloud
Amazon
AmazonAPI bénéficie de nouvelles prises en charge :
- Suppression de tous les messages dans une file d'attente.
- Gestion du cycle de vie (EN) des objets dans un compartiment avec GetBucketLifecycleXML, SetBucketLifecycle et DeleteBucketLifecycle.
Azure
- AzureAPI prend maintenant en charge les dernières versions suivantes de l'API :
- Service BLOB Microsoft Azure :
API Version 2015-02-21
- Service de Table Microsoft Azure :
API Version 2015-02-21
- Service de File d'attente Microsoft Azure :
API Version 2015-02-21
- Service BLOB Microsoft Azure :
- Prise en charge des blobs d'ajout :
- Vous pouvez désormais créer des blobs d'ajout.
- Vous pouvez ajouter des données à des blobs d'ajout existants.
- Améliorations de la prise en charge de la stratégie d'accès :
- Ajout d'une prise en charge des stratégies d'accès sur les files d'attente et des tables.
- TPolicy et ses sous-classes (TBlobPolicy, TQueuePolicy, TTablePolicy) remplacent TAccessPolicy, qui est désormais obsolète.
- Prise en charge améliorée du bail pour les blobs et les conteneurs de blobs :
- Ajout de la prise en charge des conteneurs de baux et d'autres opérations concernant les baux de conteneurs.
- Vous pouvez désormais modifier l'identificateur du bail d'un blob.
- Quand vous acquérez un bail de blob, vous pouvez maintenant proposer un identifiant pour le nouveau bail.
- Statistiques et propriétés des services :
- Ajout de la prise en charge des propriétés du service blob, du service de file d'attente et du service de table.
- Ajout de la prise en charge des statistiques du service blob, du service de file d'attente et du service de table.
- Les services Azure fournissent une nouvelle propriété, Timeout, que vous pouvez utiliser pour définir un délai de connexion pour vos requêtes.
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
ouPositionInPath
. - 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 :
- Analyser les périphériques BLE qui publient les données.
- Envoyer et recevoir des données publicitaires.
- Envoyer des données publicitaires BLE personnalisées via les données spécifiques au fabricant.
- Utiliser les beacons aux formats iBeacon (EN) et AltBeacon (EN).
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 :
- Créer votre filtre sous forme de TBluetoothLEScanFilter.
- Spécifier les champs par lesquels vous voulez trier vos périphériques.
- Facultativement, pour les périphériques utilisant des données ManufacturerSpecificData, telles que AltBeacons et iBeacons, la classe d'assistance TBeaconManufacturerDataHelper permet de filtrer le contenu selon ces données. Transmettez ensuite le contenu de TBeaconManufacturerDataHelper à ce filtre.
- Enfin, ajoutez le filtre à la liste de filtres et commencez à découvrir des périphériques avec la nouvelle implémentation de StartDiscovery.
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 :
- OnCharacteristicSubscribed est déclenché quand un périphérique distant s'abonne à l'une des caractéristiques du serveur GATT.
- OnCharacteristicUnSubscribed est déclenché quand un périphérique distant se désabonne de l'une des 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 :
- EddystoneUID : le beacon diffuse un identifiant composé de la valeur Namespace (espace de nommage) et d'une instance.
- EddystoneURL : le beacon diffuse une URL au format compressé.
- EddystoneTLM : le beacon diffuse des informations de télémétrie relatives à l'état du beacon.
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 :
- Analyser n'importe quel type de beacon en même temps.
- Analyser les beacons non recensés.
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 :
- Deux nouveaux adaptateurs réseau qui procurent la prise en charge multidiffusion ou multicast (EN) pour les protocoles IPv4 et IPv6. Votre gestionnaire peut être configuré de façon à les utiliser.
- Vous pouvez spécifier un intervalle d'adresses IPv4 comme cible d'une découverte de gestionnaires distants.
- Prise en charge du filtrage de consignation. Vous pouvez activer ou désactiver la consignation d'éléments spécifiques de l'architecture de tethering d'app.
- Les profils permettent désormais de contrôler si les demandes de connexion provenant de profils distants sont acceptées. En conséquence :
- L'événement
TTetheringProfile.OnConnectProfile
a été divisé en deux : OnBeforeConnectProfile et OnAfterConnectProfile. - Le type d'événement
TTetheringDisconnectEvent
a été renommé en TTetheringProfileEvent.
- L'événement
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 :
- Vous pouvez spécifier la valeur de la propriété CaseSensitive dans l'appel au constructeur.
- La nouvelle propriété Modified indique si le fichier INI a été modifié depuis qu'il a été chargé depuis le disque.
- La nouvelle propriété AutoSave détermine si l'instance de
TMemIniFile
doit sauvegarder sur le disque toutes les modifications au moment de sa destruction.
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 |
---|---|---|
|
|
|
|
|
|
|
|
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
etResponseTimeout
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
- Les événements OnConnectedDevice et OnDisconnectDevice de TBluetoothGattServer assurent une prise en charge d'Android.
- Les types de chaînes UTF8String et RawByteString sont maintenant pris en charge sur iOS et Android.
- La Bibliothèque de programmation parallèle inclut maintenant un nouvel enregistrement, TThreadPoolStats, que vous pouvez utiliser afin de prendre une capture de l'état interne du pool de threads à des fins de diagnostic.
- Les accesseurs en lecture de THTTPResponse sont maintenant publics, il n'est plus nécessaire de recourir aux interfaces IURLResponse ou IHTTPResponse afin de les utiliser.
- La classe
EOperationCanceled
de l'unité System.Threading a été renommée en EOperationCancelled et déplacée vers l'unité System.SysUtils. - La RTL a retiré la dépendance d'unité
Winapi.ActiveX
de l'unitéWinapi.Winrt
. - La procédure ShowMessage est désormais asynchrone sur iOS.
- La fonction ToString du type TTimeSpan est maintenant publique.
- Prise en charge de HTTPClient pour la décompression automatique d'une réponse gzip (EN) d'encodage de contenu.
- Le constructeur TZDecompressionStream a un nouveau paramètre
OwnsStream
. Il est utilisé pour déterminer si cette classe détient le flux de compression ou non.
API natives
- L'API Bluetooth LE Android (EN), incluse dans l'unité
Androidapi.JNI.Bluetooth
, a été mise à jour avec de nouvelles classes et méthodes selon les modifications introduites dans l'API niveau 21 (EN) pour Android version 5.0 ou supérieure. - RAD Studio fournit de nouvelles unités pour DirectX 12.
- Les unités pour WinRT sont maintenant plus faciles à utiliser.
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
- La mémoire allouée aux symboles conditionnels a été étendue de 256 octets à 4096 octets.
- La taille des valeurs Extended est désormais de 16 octets pour être compatible avec BCCOSX.
- Pour appliquer la sémantique relative à la visibilité, les assistances d'enregistrements et de classes ne peuvent pas accéder aux membres privés des classes ou des enregistrements qu'ils étendent.
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 :
- Vous pouvez utiliser des boucles for basées sur des intervalles (EN) et des itérateurs STL pour des chaînes et pour les conteneurs RTL et les conteneurs dérivés suivants : DynamicArray, TCollection et TEnumerable.
- Vous pouvez utiliser des expressions lambda dans vos appels à TParallel::For, TTask::Create ou TTask::Future.
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 OSX. 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 (EDI) : l'EDI sert de serveur gérant les connexions des périphériques.
- L'aperçu d'app FireUI: l'application client que les périphériques cible doivent connecter à une instance de l'EDI.
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 :
- Prise en charge des fonctionnalités C++11, telles que les templates d'alias ou les listes d'initialiseurs.
- Prise en charge des fonctions qui renvoient un pointeur de fonction (EN).
- Prise en charge des champs de bits non nommés (EN).
- Prise en charge améliorée des exceptions throw.
Améliorations du service Android
- Nouvel expert permettant de retirer automatiquement les projets Service Android des applications multi-périphériques.
- Dépendances du projet automatiquement activées :
- Cette option permet la construction automatique de tous les projets Service Android ajoutés à une application multi-périphérique avant la construction de l'application principale.
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 OS X 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.
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
- Prise en charge améliorée pour les tableaux dynamiques Delphi.
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 :
- Version C++ des exemples :
- Exemple RTL.RegExpression FMX.
- Exemple RTL.RegExpression VCL.
- Exemple VCL.Windows 10 SharingContract.
- Exemples EMS :
- Exemple EMS.ThingPoint IoT.
- Exemple EMS.APIDocAttributes.
- Exemples FireMonkey :
- Exemple FMX.Remote Service Demo.
- Exemple FMX.Birthday Reminder Demo.
- Exemple FMX.SimplePhysics.
- Exemple FMX.StreamingMedia.
- Exemples FireDAC :
- Exemple FireDAC.InterBase Arrays.
- Exemple FireDAC.PostgreSQL Ranges.
- Exemple FireDAC.PostgreSQL Arrays.
- Exemple FireDAC.SQLite Encryption.
- Exemple FireDAC.Oracle CQN.
- Exemple FireDAC.MongoDB ListView.
- Exemples de la RTL :
- Exemple RTL.ExtendedBeaconScanner.
- Exemple RTL.HttpAsyncDownload.
Aide
- Les fichiers CHM fournissent un onglet Favoris.