11 Alexandria - Release 1

De RAD Studio
Aller à : navigation, rechercher

Remonter à Accueil

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

La mise à jour de RAD Studio 11.1 Alexandria est disponible (15 mars 2022).

Remarque:
  • Pour connaître la liste des composants de 11 Alexandria, cliquez ici.
  • Pour connaître la liste des composants de 11 Alexandria - Release 1.5, cliquez ici.
  • Pour connaître la liste des composants de 11 Alexandria - Release 2, cliquez ici.

RAD Studio 11 Alexandria - Release 1 (aussi appelé 11.1) est disponible pour l'installation. RAD 11.1 repose sur les fonctionnalités de 11 et compte des améliorations et de nouvelles fonctionnalités réparties dans l'ensemble du produit. Delphi 11, C++Builder 11 et RAD Studio 11 sont disponibles en téléchargement pour tout client disposant d'un abonnement Update Subscription actif.

RAD Studio 11.1 est particulièrement axé sur des améliorations de qualité. Cela concerne essentiellement les parties du produit suivantes :

  • EDI
  • Bureau distant
  • Compilateurs Delphi et C++
  • Chaîne d'outils C++
  • Delphi LSP
  • C++ LSP
  • RTL Delphi
  • VCL
  • FireMonkey
  • Données
  • Internet

Principales améliorations de 11.1 selon les différentes parties du produit

Améliorations relatives à l'EDI

Améliorations générales de l'EDI

  • Une fois l'installation terminée, l'opération "Commencer à travailler" démarre l'EDI. La première exécution est donc effectuée avec les autorisations de niveau utilisateur au lieu d'autorisations plus élevées.
  • L’option "Activer les thèmes d'exécution" est maintenant activée dans la configuration de base d'un projet.
  • Le ProjectRoot d'un fichier dproj/cbproj trie désormais les fichiers de manière cohérente.
  • Certains paramètres de l'interface ToolsAPI de la boîte de dialogue Attente de l'EDI ont été renommés pour mieux refléter leur fonctionnalité.
  • L'élément de menu "Nouvelle fenêtre d'édition" est désormais désactivé lorsqu'une vue ne prend pas en charge le clonage. Cela inclut la page d'accueil qui ne peut être ni dupliquée ni déplacée vers une autre fenêtre.
  • La page Options > Enregistrement et Bureau a été divisée en deux nouvelles pages :
    • Enregistrement et récupération (elle contient des options de récupération automatique et d'enregistrement automatique).
    • Bureau et disposition (elle contient le reste des options).
  • Vous pouvez désormais changer les couleurs des messages d'erreur, d'avertissement et de conseil dans la vue Messages de la boîte de dialogue Options. Vous pouvez définir des couleurs différentes pour chaque thème de l'EDI (par exemple, des couleurs différentes pour le thème clair et le thème sombre et d'autres thèmes).
  • La prise en charge du stylage a été ajoutée à des boîtes de dialogue de l'EDI (messages de confirmation de l'utilisateur, avertissement d'écrasement de fichier, vérification des noms de projets Unicode, et utilisation d'un code page non valide).
  • Le problème lié aux fichiers projet et à un ordre de tri incohérent des fichiers déployés est maintenant réglé (cela provoquait des modifications non souhaitées).
  • L'application Console C++ par défaut a été améliorée. Il est désormais possible de créer une application console en utilisant un raccourci rapide du menu Fichier > Nouveau (puis Créer nouveau) dans C++ et Delphi.
  • Certains éléments du pack de correction de l'EDI ont été intégrés :
    • Les barres d'outils de l'EDI comme les barres d'outils d'édition.
    • Les barres de défilement manquantes dans les pages des boîtes de dialogue Options.
    • Les corrections de problèmes de rendu de l'Inspecteur d’objets.
    • L'EDI et l'éditeur de code pouvaient s'afficher en noir lors du débogage.
    • Les touches spéciales comme la touche Windows dans les contrôles de saisie de texte des fiches FMX du Concepteur de fiches.
    • Le mode liste dans la vue Projets.
    • Un grand nombre d'exceptions.
  • La boîte de dialogue Nouveaux éléments affiche les plates-formes disponibles pour l'ensemble des éléments.
  • La boîte de dialogue Nouveau dans laquelle il est possible d'ajouter des éléments dans un projet n’affiche que les éléments correspondant à la plate-forme active.
  • La boîte de dialogue Nouveau prend désormais en charge plusieurs styles de vues au lieu d'une seule liste verticale (cartes, listes, icônes et petites icônes).
  • La boîte de dialogue Nouveaux éléments utilise maintenant le contrôle VCL TControlList afin d'améliorer le défilement.
  • La boîte de dialogue Compilation indique la plate-forme et la configuration de construction, et affiche les erreurs avant les avertissements et les conseils.

Qualité de niveau "High DPI' (haute résolution) de l'EDI

  • Les modules de données enregistrent désormais la propriété PixelsPerInch lorsqu'elle a la valeur 96 (par défaut). C'est aussi le cas des fiches VCL.
  • Les cadres créés dynamiquement sont désormais mis à l'échelle correctement lorsqu'ils sont conçus en haute résolution (High DPI).

Page d'accueil

  • La page d'accueil prend désormais en charge les images d'arrière-plan. La sélection d'une image provoque sa mise à l'échelle afin qu'elle remplisse la page d'accueil. Les proportions de l'image sont conservées (ce qui signifie que les côtés droits/gauche ou haut/bas de l'image peuvent être hors écran si l'autre axe occupe la page d'accueil).
  • La boîte de dialogue Options de l'EDI contient une nouvelle page pour définir les paramètres de la page d'accueil (y compris l'arrière-plan et sa fermeture à l'ouverture d'un projet). Vous pouvez également accéder à cette page depuis l'éditeur de disposition.
  • Les cadres de la page d'accueil sont désormais transparents par défaut. Le papier peint défini sera donc partiellement transparent. La quantité de transparence compte parmi les métriques de la page d'accueil disponibles dans ToolsAPI.
  • L'espacement entre les cadres et les bords supérieurs et inférieurs de la page d'accueil a été légèrement modifié.

Prise en charge de ToolsAPI

La page d'accueil prend complètement en charge la création de cadres de page d'accueil en utilisant ToolsAPI. Les cadres du logiciel utilisent la même API, ce qui signifie que les cadres que vous créez peuvent avoir exactement le même comportement que ceux du logiciel.

Deux démos de Page d'accueil (Welcome Page) illustrant une utilisation simple et avancée de la page d'accueil sont disponibles sur Github.

Dans sa forme la plus simple, vous pouvez créer un descendant de TFrame et l'afficher avec un libellé. Le cadre peut contenir tout ce que vous voulez. Toutefois, des fonctionnalités plus complexes sont disponibles :

  • Les libellés de cadre peuvent contenir des "chromes" d'interface utilisateur personnalisés (implémentés via un second cadre), comme c'est le cas dans certains de nos cadres (par ex. le cadre Ouvrir récents (boutons) et le cadre Créer (basculement entre Delphi et C++).
  • Nos cadres utilisent un pattern MVC et permettent de charger les données dans un thread d'arrière-plan. Vous pouvez utiliser notre propre implémentation, c'est-à-dire utiliser le même cadre et les vues listes qui le composent. Vous obtiendrez ainsi le même comportement et la même apparence sans imiter notre configuration, y compris si des modifications sont apportées à l'avenir sur la disposition par défaut, la taille, etc.

Améliorations relatives aux dialogues GetIt

  • La boîte de dialogue GetIt a été remaniée tout en conservant une interface utilisateur similaire mais en adoptant un composant ControlList pour la liste de packages. Ce changement a un effet significatif sur les performances.
  • RAD Studio met maintenant en cache les icônes de packages dans GetIt, ce qui réduit le temps d'ouverture du dialogue.
  • Une nouvelle option permet d'ignorer les correctifs dans GetIt. Vous pouvez donc ignorer l'installation d'un correctif et arrêter la notification d'un correctif en attente.

Améliorations relatives aux compilateurs et aux chaînes d'outils

Pour Delphi et C++

ASLR, DEP/NX et TSAWARE

Dans Delphi et C++, les lieurs Windows offrent une meilleure prise en charge des configurations de sécurité de la plate-forme : Pour Delphi :

  • Ces fonctionnalités sont déjà disponibles sous forme d'indicateurs du compilateur/lieur :
    • {$DYNAMICBASE} pour ASLR
    • {$SetPEOptFlags $40} pour DEP/NX ou l'option ‑‑peflags correspondante

Pour C++ :

  • Utilisez l’option de lieur -GE: pour activer ou désactiver ces indicateurs :
 -GE:option|0xNNNN[=on|off] Set DLL characteristics flags
 	ALLOWBIND | ALLOWISOLATION | DYNAMICBASE | HIGHENTROPYVA
 	NXCOMPAT | TSAWARE
HIGHENTROPYVA correspond à ASLR; NXCOMPAT correspond à DEP/NX; et TSAWARE correspond à Terminal Server.

Pour Delphi et C++ :

  • Ces paramètres sont maintenant activés par défaut
  • Il est désormais possible de construire des binaires redistribuables (comme les fichiers BPL de package) lorsque les configurations de sécurité sont activées

Débogueur Delphi pour macOS ARM et Android

Un nouveau débogueur est disponible pour l'exécution des applications OS sur un périphérique ARM Apple. Le débogueur n'est pas utilisé si vous utilisez une machine Intel.

Ce nouveau débogueur s'appuie sur une construction récente de LLDB, et sa principale technologie repose sur un analyseur Delphi qui comprend un sous-ensemble de syntaxe Delphi. Par exemple, il comprend des expressions Delphi même si vous ne pouvez pas définir de nouvelle classe. (Sa compréhension de Delphi est suffisante pour les expressions de débogueur que vous avez besoin d'utiliser.) Vous devez utiliser une syntaxe semblable à celle de Delphi (sans distinction majuscule/minuscule) et capable d'évaluer des expressions complexes en syntaxe Delphi.

Ce débogueur est aussi disponible pour Android 64 bits. Ce débogueur est beaucoup moins susceptible de provoquer des "erreurs de déconnexion" ou des blocages.

Chaîne d'outils et compilateur C++

  • Le constructeur par défaut pour UnicodeString n'est plus déclaré inline. Ce qui peut être utile si vous voulez effectuer un pas à pas approfondi lors du débogage et invoquer une fonction qui renvoie une chaîne.
  • AnsiStringT a le préfixe de l'espace de nommage System::
  • Plusieurs en-têtes intrinsèques (xmmintrin.h, etc.) sont à présent disponibles.
  • Suite à un changement important intervenu dans la RTL C++, les bibliothèques C++ doivent être reconstruites en 11.1 (pas de liaison possible avec les fichiers objet ou .lib-s construits avec 11.0). Cette modification concerne la gestion correcte des handles pour Win64. Certaines structures internes de la RTL n'étaient pas élargies, ce qui provoquait parfois une troncature des handles. Elles sont désormais suffisamment larges.
  • La RTL comprend davantage d'intrinsèques (comme SSE-AVX).
  • System::DynamicArray contient des membres STL pour les itérations comme begin().
  • Certaines fonctions String qui figuraient dans des assistants (helpers) dans Delphi sont maintenant disponibles depuis C++.
  • L'EDI rencontrait un problème avec les chemins du lieur. Ce dernier trouvait les bibliothèques de débogage classique (si fournies) avant les binaires de release clang. Ce qui signifie qu'une fois livrés si les deux compilateurs étaient supportés, les builds de débogage de votre composant ou de la bibliothèque auraient été liés avec la version provenant des mauvais compilateurs. Ce problème a été résolu.

Des améliorations ont été apportées par rapport aux nombreux bogues de compilation liés au débogueur (et tout particulièrement Win64) ainsi qu'aux informations de débogage : utilisation d'un fichier TDS en mode release, modifications de locale. D'autres parties de la RTL et de la STL ont aussi été améliorées : amélioration des bibliothèques d'importation, correction de coff2omf pour les bibliothèques OMF générées, etc.

Améliorations relatives à LSP (Delphi et C++)

Delphi LSP

  • DelphiLSP connaît des améliorations significatives en matière de qualité et de vitesse. Quant à 11.1, ses améliorations concernent tout particulièrement les performances.
  • Le principal changement de cette version est que les améliorations de performances s'appliquent à tous les types de projets, y compris les packages.
  • Les informations relatives aux exceptions s'affichent dans les audits d'aide.
  • Le numéro de ligne apparaît désormais dans les audits d'aide des tableaux et des ensembles.
  • L'appui sur Ctrl-Maj-Flèche bas depuis une macro/ifdef inactive provoquait le passage à l'implémentation de la prochaine méthode déclarée.
  • La navigation Ctrl-clic fonctionne maintenant avec les types génériques à alias. Ainsi, si IntArray est un TArray<Integer>, l'appui sur CTRL-clic depuis un IntArray vous fait passer à l'emplacement de la déclaration de type de TArray<Integer> au lieu de TArray<> dans System.pas.
  • Un problème lié à la navigation Ctrl-Maj-Flèche Haut/Bas a été corrigé (il y avait un dysfonctionnement lorsque des directives include étaient présentes dans l'unité).
  • L'audit d'erreur ne fonctionnait pas lorsque le projet utilisait des fichiers placés dans un autre lecteur que le projet.
  • Les projets normaux se chargent désormais beaucoup plus rapidement. La technique de chargement des projets a été modifiée (beaucoup moins d'analyse). DelphiLSP connaît lui aussi des améliorations de vitesse pour le chargement des projets et les réponses aux requêtes.
  • Les résultats d'audit d'aide sont actualisés plus rapidement. La vitesse est 5 à 30 fois plus rapide. L'amélioration la plus significative concerne les unités avec plusieurs dépendances (nombreuses unités utilisées).

Parmi les autres améliorations :

  • Meilleure gestion des macros (defines) afin que le basculement entre l'implémentation et la déclaration d'une méthode fonctionne mieux lorsqu'il y a des IFDEF, tout comme l'achèvement de code dans les déclarations de classe.
  • Les macros (defines) sont aussi trouvées lorsqu'elles sont déclarées dans un fichier include.
  • Lors des déclarations de propriétés, l'achèvement de code suggère des getters et setters.
  • L'achèvement de code affiche les types des ensembles.
  • Dans l'achèvement de code, les paramètres de type apparaissent dans la déclaration de classe, y compris les types génériques (par exemple, T) d'une déclaration générique.
  • Les conseils ou informations d'aide des paramètres peuvent apparaître lors de l'instanciation de types génériques.
  • L'achèvement de code affichait des informations spécifiques à TObject comme AfterConstruction depuis une déclaration d'enregistrement. Ce problème a été résolu.

C++ et cquery

Dans le nouvel onglet Comportement du LSP, deux options contrôlent la façon dont le serveur LSP cquery indexe les fichiers, et plus précisément comment il stocke les informations utilisées pour l'achèvement de code, la navigation, etc. Il s'agit des options "Redémarrer le serveur à chaque fois qu'un projet est activé" et "N'indexer que les fichiers ouverts dans l'éditeur". En savoir plus.

Remarque: L'indexation utilise beaucoup de CPU et il n'est généralement pas possible d'utiliser l'Audit de code tant qu'elle n'est pas terminée. Notez que le redémarrage du serveur (par exemple, à chaque changement de plate-forme) efface aussi l'index.

Parmi les autres améliorations :

  • Les éléments de l'achèvement de code sont affichés dans l'ordre dans lequel ils sont renvoyés par cquery, c'est-à-dire l'ordre de la portée, à moins que l'option Tri Alpha n'ait été activée (elle est désactivée par défaut).
  • L'indexation n'est activée par défaut que dans la boîte de dialogue Options de projet des projets C++.
  • L'achèvement de code peut être effectué dans des fichiers d'en-tête qui ne font pas vraiment partie du projet (par exemple, des fichiers qui ne font pas partie d'une paire d'unité cpp/h).
  • La modification des options de projet ou de la plate-forme active redémarre le serveur pour prendre en compte les nouveaux paramètres du projet.
  • Le serveur sait désormais quand un fichier a été enregistré et se met à jour correctement. Ceci est particulièrement important pour les nouveaux fichiers, car dans cette version du produit, l'Audit de code ne fonctionne pas tant que le fichier n'existe pas sur disque.

Autres fonctionnalités de C++ :

  • L'EDI attend que le serveur soit prêt.
  • L'achèvement de code peut désormais être effectué depuis le fichier source principal d'un projet.

Améliorations relatives aux performances

  • Quelle que soit la taille du projet, l'achèvement de code s'affiche en deux secondes ou moins. Sachez que si vous invoquez l'achèvement de code dans la portée globale d'un projet VCL, plus de 80 000 éléments sont renvoyés.

Améliorations relatives aux bibliothèques

Afin de faciliter le partage de code entre projets construits avec le framework FMX et la VCL, nous avons ajouté des symboles prédéfinis spécifiques au framework:

  • FRAMEWORK_VCL - cette variable prédéfinie est sur True si le projet utilise le framework VCL
  • FRAMEWORK_FMX - cette variable prédéfinie est sur True si le projet utilise le framework FireMonkey (FMX)

RTL Delphi

Effort d'optimisation

  • D'importants efforts d'optimisation des performances ont été déployés au niveau de la RTL Delphi.
  • Des améliorations importantes ont aussi été apportées à _CopyArray, _IntToStr64, _IntToStr32, InitInstance, InvokeRecordInitializer, _FinalizeRecord, _UStrAsg (including purepascal version), _LStrAsg, _LStrLAsg, AnsiLowerCase / AnsiUpperCase, et TStringHelper.IndexOf.

Nouvelle classe TURLStream

  • Il y a une nouvelle classe de flux, TURLStream, et une classe de base générale : TAsyncStream est la nouvelle classe de base pour les flux async, elle est héritée de TMemoryStream. Quant à TURLStream, c'est un flux async prenant en charge les chemins URL, elle est héritée de TAsyncStream.
  • TAsyncStream.Create démarre APopulate dans le flux en arrière-plan. Tant qu'il n'est pas terminé, tous les appels de méthode TStream à TAsyncStream sont bloqués. Une application peut:
    • Utiliser IAsyncResult pour attendre/vérifier la fin du remplissage de TAsyncStream. TAsyncStream prend en charge IAsyncResult.
    • Fournir à AProvide une méthode anonyme qui est appelée lorsque le remplissage est terminé.
  • Le constructeur TURLStream étend le constructeur de la classe de base et est déclaré comme suit :
constructor TURLStream.Create(const AURL: string; 
 const AProvide: TAsyncStream.TStreamer;
 ASynchronizeProvide, AFreeOnCompletion: Boolean);
  • TURLStream hérite du comportement de la classe de base TAsyncStream, mais utilise en interne THttpClient ou TFileStream, selon le schéma URL.
  • TAsyncStream définit les méthodes publiques suivantes : Destroy, AfterConstruction, Read, Write, Seek, SetSize(Int64), SetSize(Longint), SaveToStream.
  • TURLStream définit les méthodes publiques suivantes : Destroy, RegisterSyncReqExexcutor, UnRegisterSyncReqExecutor.

Améliorations supplémentaires de la RTL

  • Prise en charge de Windows 11 et Server 2022 dans la structure de données TOSVersion
  • TURI.ToString prend en compte le port
  • TMetaFile peut à présent charger un flux important

TMemIniFile et sections dupliquées

  • TIniFile a été modifié afin d'assurer une meilleure compatibilité avec le comportement de la pré-version 10.3 en cas de sections dupliquées.

VCL

Nous avons essentiellement résolu des problèmes relatifs aux fonctionnalités récentes, comme TTreeView, TRichEdit, TEdgeBrowser et TNumberBox.

FireMonkey

Amélioration de l'intégration du SDK Android

  • Les dépendances du fichier android.bat ont été supprimées en faveur de advmanager, et la boîte de dialogue Gestionnaire de SDK de la plate-forme Android a aussi été modifiée.
  • La compilation DEX et la fusion DEX sont maintenant différées après la liaison C++/Delphi, ce qui accélère la compilation sans déploiement.
  • Pour l'intégration du noyau de la plate-forme Android, les classes Delphi implémentant les interfaces Java avec des surcharges de méthodes sont maintenant supportées. Cela permet de résoudre un problème lié à Android 12 et l'accès aux détecteurs (ce qui corrige la démo SensorInfo).
  • Les classes Delphi qui implémentent les interfaces Java peuvent maintenant avoir des fonctions qui renvoient les valeurs Int8, Int16, Int64, Float32 et Float64.

TWebBrowser

  • Améliorations relatives à TWebBrowser sur Windows (avec prise en charge de WebView 2), y compris la capacité de changer le moteur Windows plusieurs fois. La valeur par défaut de la propriété WindowsEngine a été modifiée.
  • Nous avons également corrigé des problèmes de redimensionnement et de transparence avec le contrôle. De plus, la capacité de WebBrowser à travailler avec des fichiers locaux sur un périphérique mobile a été renforcée.

Renforcement de la qualité FMX

  • Plusieurs problèmes relatifs à la prise en charge HighDPI de Windows ont été résolus.
  • Amélioration des performances de TMessageManager.Unsubscribe.
  • L'option Annuler a été ajoutée au menu contextuel de TMemo et le problème relatif au défilement du contenu a été résolu.
  • Des améliorations ont été apportées aux couleurs des emojis, sur iOS et Android.
  • Amélioration de la prise en charge du pilote Metal GPU sur la plate-forme macOS.

Données

Informations générales

  • Le volet Concepteur de liaison de champs et la boîte de dialogue Nouveau champ ont été élargis pour améliorer lors usabilité.
  • Afin de prendre en charge les noms de champ longs de Firebird 4 (jusqu'à 63 caractères), la limite de 31 caractères n'existe plus pour les noms de champs de base de données de la RTL.
  • La prise en charge de la vue Structure a été améliorée pour FireDAC. De plus, certaines fenêtres FireDAC offrent une meilleure prise en charge de la haute résolution (High DPI).
  • Prise en charge du serveur 10.6 MariaDB avec un client 10.6
  • Prise en charge de SQLite SEE, offrant un batch en ligne de commande pour construire les OBJ SQLite avec la liaison statique FireDAC de C++Builder. Ce processus est expliqué dans le fichier readme sqlite_see.txt (cette fonctionnalité était déjà disponible dans RAD Studio 11.0 via un plugin GetIt).
  • FireDAC améliore le pilote Firebird 4 grâce à la prise en charge de types de données supplémentaires:
    • INT128
    • NUMERIC avec précision 19..38
    • TIME WITH TIME ZONE, TIMESTAMP WITH TIME ZONE (limité)
    • DECFLOAT(16/34)
    • Délai d'attente de l'instruction native
  • FireDAC prend en charge la taille de page 32768 pour FireBird 4.

Internet

WebBroker sur Android

  • Les applications de serveur WebBroker peuvent désormais être déployées sur un périphérique Android ou un "developer board" (comme un RaspBerry Pi exécutant un système d'exploitation Android). Cela est valable pour les plates-formes 32 bits et 64 bits.

DataSnap

  • Web.Win.ISAPIThreadPool a été étendu pour autoriser plus de 64 threads. Le type de la variable NumberOfThreads a été changé en Cardinal. La variable ShutdownTimeout (un délai d'attente en millisecondes qui définit la durée d'attente d'un pool de thread avant de finaliser tous les threads) est définie par défaut à 2 minutes.

RAD Server

  • Suite aux améliorations de structures de bases de données, de nouveaux points de terminaison SysAdmin REST ont été ajoutés :
    • GET /sysadmin/log - renvoie des informations sur le contenu de la table LOG.
    • POST /sysadmin/log?minTime=<date ISO8601> - supprime tous les enregistrements de la table LOG antérieurs à la date/heure spécifiée.
    • DELETE /sysadmin/log - supprime tous les enregistrements de la table LOG.
    • GET /sysadmin/backup?backupFile=<chemin du fichier> - crée le fichier de sauvegarde spécifié d'une base de données emsserver.ib. Le fichier de sauvegarde sera stocké sur le serveur InterBase.
    • POST /sysadmin/backup?backupFile=<chemin du fichier> - restaure la base de données emsserver.ib depuis le fichier de sauvegarde spécifié. Le fichier de sauvegarde sera stocké sur le serveur InterBase.
    • GET /sysadmin/validate - effectue la validation de base de données emsserver.ib et renvoie l'état de la base de données.
  • Autorise les utilisateurs RAD Server à se connecter depuis plusieurs sessions simultanées.
  • Nouvelle fonctionnalité de déploiement pour RSLite
    • Option dans EMS.INI pour sélectionner une bibliothèque client Interbase spécifique (pour une base de données standard ou incorporée) avec l'entrée ClientLib de la section Data.
    • Vous disposez désormais d'une fonctionnalié de déploiement prête à l'emploi pour RSLite.

Autres

  • Une option a été ajoutée pour permettre la sélection d'un certificat côté client dans le débogueur REST.
  • Le débogueur REST est maintenant orienté DPI.
  • La classe TCustomRESTRequest a une nouvelle propriété BodyCodePage qui spécifie le code page du corps de la requête. Voici les valeurs possibles :
    • -1 (la valeur par défaut) - utilise l'encodage par défaut de la plate-forme
    • 0 - code page actif actuellement utilisé
    • 65001 - UTF8.
  • Prise en charge du changement de région dans AmazonAPI

Voir aussi