Afficher : Delphi C++
Préférences d'affichage

Nouveautés

De RAD Studio

Remonter à Accueil

La release RAD Studio 10.2 Tokyo contient des fonctionnalités nouvelles et des améliorations.

Linux

RAD Studio 10.2 Tokyo fournit la prise en charge Linux pour le langage Delphi. Le compilateur présente une activation ARC et prend uniquement en charge les applications côté serveur. Cela inclut les applications console, les applications WebBroker et DataSnap ainsi que le support du développement et déploiement RAD Server. Les applications peuvent aussi accéder aux données via FireDAC. Les distributions Linux suivantes sont prises en charge : Ubuntu 16.04 LTS et RedHat Enterprise Version 7. La prise en charge de Linux dans RAD Studio 10.2 Tokyo est disponible dans les versions Enterprise Edition et supérieures.

Compilateur Linux Delphi

  • Prise en charge de la plate-forme Linux 64 bits
  • Prise en charge du langage Delphi
  • Activation ARC
  • Chaînes basées sur 1
  • Basé sur le moteur LLVM

Distributions Linux prises en charge

RAD Studio 10.2 Tokyo prend en charge les distributions Linux suivantes :

  • Ubuntu Server (Ubuntu 16.04 LTS)
  • RedHat Enterprise Linux (version 7)

Fonctionnalités RTL prises en charge

  • Accès au système de fichiers Linux
  • Prise en charge des bibliothèques de programmation parallèle et de threading
  • Gestion de la mémoire
  • Prise en charge des bibliothèques HTTP et REST pour les appels HTTP

Applications Linux Server 64 bits

Les dernières technologies RAD Studio pour les applications serveur bénéficient de la prise en charge de Linux 64 bits.

FireMonkey

Nouvelles options de barre d'état système sur iOS

Deux nouvelles propriétés ont été ajoutées à TForm pour changer le comportement de la barre d'état système sur iOS : SystemStatusBar.BackgroundColor et SystemStatusBar.Visibility.

Améliorations relatives à TMultiView

  • Désactivez l'interaction utilisateur avec TMultiView par l'intermédiaire de la propriété Enabled.
  • Nouvelles options pour gérer l'apparence des bordures dans les composants TMultiView.
  • Alignements supérieur et inférieur pour le mode panneau ancré dans les composants TMultiView.

Prise en charge du multi-threading pour TBitmap, TCanvas et TContext3D

  • TBitmap : support multi-threading complet. Opérations de création, destruction et modification dans n'importe quel thread sans synchronisation.
  • TCanvas : peut être utilisé depuis plusieurs threads simultanément, mais est sérialisé en interne.
  • TContext3D : peut être utilisé depuis plusieurs threads simultanément, mais est sérialisé en interne.

Autres modifications relatives à FireMonkey

  • Prise en charge de ICaption pour les contrôles texte suivants : TText, TStyleTextObject, TActiveStyleTextObject, TTabStyleTextObject et TButtonStyleTextObject.
  • Améliorations FMX de TWebBrowser pour Windows.
  • Propriété CharCase supplémentaire dans TEdit.
  • Evénements TStringGrid ré-exposés:
    • OnCellClick
    • OnCellDoubleClick
    • OnDragDrop
    • OnDragEnter
    • OnDragLeave
    • OnDragOver
    • OnResized
  • Propriétés TagObject et TagString ajoutées à TListViewItem.
  • Unification des threads Delphi et Java sur Android : CallInUIThread est obsolète. Tout le code s'exécute maintenant dans le thread d'interface utilisateur Java, ce qui rend inutile la synchronisation des threads.
La méthode ProcessMessages appelait la méthode CheckSynchronize, laquelle appelait les callbacks du thread Java natif. Il y avait deux threads : le thread d'interface utilisateur Delphi et le thread Java natif. Suite au refactoring effectué dans la version 10.2, il n'y a plus qu'un thread : le thread Java natif, qui reçoit les notifications d'Android et les transmet aux gestionnaires d'événement Delphi. Tant qu'il est bloqué via le cycle while, aucun gestionnaire d'événement ne peut être exécuté, ce qui empêche une sortie du cycle. Les callbacks et les événements en général sont appelés si aucun code ne retient le thread principal de l'app.
  • Améliorations de FMX.Platform.Android.pas via l'amélioration de FMX.Platform.Device.Android.pas, FMX.Platform.Logger.Android.pas, FMX.Platform.Metrics.Android.pas, FMX.Platform.SaveState.Android.pas, FMX.Platform.Screen.Android.pas, et FMX.Platform.Timer.Android.pas.
  • La méthode Release de TForm est obsolète.
  • Modifications relatives à ShowModal sur Android.

Nouveaux styles FireMonkey

De nouveaux styles FireMonkey ont été ajoutés pour macOS et Android. Accédez aux styles FireMonkey à l'emplacement :

  • C:\Users\Public\Documents\Embarcadero\Studio\19.0\Styles\MacOS\macOSgraphite.fsf
  • C:\Users\Public\Documents\Embarcadero\Studio\19.0\Styles\Android\AndroidWearDarkBlue.fsf

FireDAC et les bases de données

Améliorations pour Firebird

  • Nouvelle propriété Direct pour ajouter la prise en charge de la fonctionnalité de sauvegarde Direct I/O (EN).

Améliorations pour MySQL

  • Prise en charge de MySQL v 5.7.
  • Prise en charge de MariaDB v 5.5 ou ultérieur. Utilisez le noeud MySQL de FireDAC pour la connexion à MariaDB.
  • Compatibilité avec les versions MySQL 5.6.x et 5.7.x récentes.
  • API des instructions préparées MySQL : désormais l'ancienne API (protocole texte MySQL) et l'API PS (protocole des instructions préparées MySQL) sont prises en charge.
  • Prise en charge des flux BLOB internes (en mode smOpenWrite uniquement).
  • Améliorations de la synchronisation d'un état de transaction de connexion et de la propriété TFDConnection.InTransaction. Cette propriété vous permet de déterminer si une transaction de connexion est actuellement en cours.

Autres modifications relatives à FireDAC

  • Le composant TFDDataMove a été retiré de cette release et n'est plus disponible dans la palette d'outils. Utilisez à la place le composant TFDBatchMove.
Remarque : Si vous avez besoin de TFDDataMove pour vos projets existants, utilisez l'unité FireDAC.Comp.DataMove.pas, disponible dans :
Démarrer | Programmes | Embarcadero RAD Studio 10.2 Tokyo | Exemples, puis naviguez jusqu'à :
Object Pascal\Comp Layer\TFDBatchMove\DataMove_Deprecated
  • TFDBatchMove a été optimisé. En conséquence, les propriétés DestValue et SourceValue de TFDBatchMoveMappingItem ne sont plus disponibles.
  • TFDMSAccessService prend maintenant en charge Microsoft Access 2007 ou ultérieur.
  • Améliorations du composant TFDMemTable pour modifier l'ensemble de données TFDMemTable à la conception. Le menu contextuel de TFDMemTable fournit maintenant la commande Modifier l'ensemble de données... qui vous permet de modifier les données du composant et de les enregistrer dans la fiche. Les données sont disponibles à l'exécution.
Remarque : Avant d'utiliser Modifier l'ensemble de données..., vous devez spécifier les définitions de champ pour les champs d'un ensemble de données TFDMemTable.FieldDefs ou créer des champs persistants.

Améliorations de la base de données

  • Le composant TDBImage de la VCL prend en charge les formats graphiques JPEG et PNG.
  • Prise en charge des options d'affichage pour les BlobFields.
  • Accès GUID direct pour les classes TField.

RTL

Client HTTP

Client HTTP La bibliothèque fournit la prise en charge de Linux 64 bits.

Prise en charge asynchrone améliorée dans le client HTTP

Prise en charge de la RTL pour Linux 64 bits

RAD Studio 10.2 Tokyo prend en charge le système de fichiers Linux en utilisant les fonctions système standard, les flux et l'unité IOUtils. Il fournit également la prise en charge des fonctions RTL standard relatives aux chemins pour Linux 64 bits.

Améliorations relatives au tethering d'apps

Le tethering d'app bénéficie des fonctionnalités suivantes :

Fonctions de hachage nouvelles et améliorées

Les méthodes suivantes de l'unité System.Hash acceptent désormais un flux ou une chaîne comme paramètre d'entrée :

L'unité System.Hash possède les nouvelles méthodes suivantes qui vous permettent d'obtenir une valeur de hachage à partir d'un fichier :

Plates-formes mobiles

Packages C++ améliorés pour environnement mobile

RAD Studio 10.2 Tokyo lie les packages C++ pour iOS et Android de façon statique. Les versions précédentes de RAD Studio généraient un fichier avec l'extension .so pour les packages C++, mais n'étaient pas de véritables bibliothèques dynamiques. RAD Studio 10.2 Tokyo génère des packages C++ avec l'extension de fichier correcte (.a). En cas de liaison statique avec un package .so, vous devrez changer la liaison en fonction du nouveau nom de fichier.

Prise en charge multi-client RAD Server

Grâce à la prise en charge multi-client, une seule instance de RAD Server avec une seule connexion de base de données RAD Server peut prendre en charge les clients multiples isolés. Chaque client a un ensemble unique de ressources RAD Server comprenant les utilisateurs, les groupes, les installations, les EdgeModules et d'autres données. Tous les clients ont des ressources personnalisées qui sont installées dans le serveur EMS. Par ailleurs, en tant qu'administrateur, vous pouvez créer de nouveaux clients, en modifier des existants, ajouter, modifier ou supprimer les détails de vos clients, spécifier si le client est actif, et supprimer les clients dont vous n'avez pas besoin.

Compilateurs C++

Meilleure prise en charge du débogage

Compilateurs améliorés par Clang :

  • Les variables locales contenues dans du code construit avec les compilateurs améliorés par Clang pour Win32 et Win64 peuvent désormais être évaluées dans les points de suivi ou dans la vue Variables locales.
  • Lorsque le code contient deux variables locales ayant un nom identique mais placées dans des portées différentes au sein d'une méthode, l'évaluation des deux variables peut maintenant être résolue et afficher chacune selon son emplacement.
  • Les noms de classes sont désormais toujours affichés dans la pile d'appels.
  • (Compilateur amélioré par Clang Win32) La prise en charge des fichiers de type externe pour les informations de débogage réduit la duplication des informations de débogage créées pour les types communs utilisés dans de nombreuses unités de compilation, comme les types VCL. Cela a pour effet de réduire de façon significative la taille des informations de débogage générées lors de la construction.

Amélioration du générateur de code (Codegen)

Compilateurs améliorés par Clang :

  • Amélioration de Codegen pour les niveaux d'optimisation -O1 et -O2, y compris la résolution des problèmes connus.
  • Prise en charge pour le niveau d'optimisation -03. Les compilateurs Win32 et Win64 améliorés par Clang prennent en charge le niveau d'optimisation -O3, un niveau élevé qui peut doubler la performance du code compilé dans certaines situations.

Prise en charge des plates-formes mobiles

  • Les applications Android C++ peuvent être construites sans nécessiter de versions spécifiques du NDK.

Lieurs

  • Le lieur C++ présente des améliorations majeures :
    • Amélioration de la gestion des ressources pour corriger les erreurs liées au tas, comprenant notamment le manque de mémoire, les erreurs VIRDEF, dwarf_str, etc.
    • Le lieur peut maintenant utiliser jusqu'à 4 Gio de mémoire, il n'est plus limité à 2 Gio.
    • Les options du lieur ont été étendues pour permettre de définir les tailles d'allocation de ressources pour des types spécifiques de données de débogage ou de lieur.
Même si cela n'est pas nécessaire pour la majorité des projets, c'est très utile pour des projets très volumineux ou des projets générant une quantité de données liées inhabituelle, y compris les infos de débogage. Si des erreurs relatives au lieur se produisent, elles peuvent être résolues en définissant les options en fonction du comportement de votre projet.

Gestion des exceptions

  • Améliorations significatives pour la gestion des exceptions, notamment les erreurs relatives aux fuites de mémoire.

EDI

  • Désormais, les fonctions Audit de code et Achèvement de code dans Delphi gèrent correctement les tableaux statiques et dynamiques.
  • La boîte de dialogue Chercher dans les fichiers fonctionne correctement avec des écrans à haute résolution.
  • La prise en charge de la conception et de l'ouverture de fiches sous des résolutions différentes a été améliorée.
  • Le menu Voir a été réorganisé. Les fenêtres d'outils comme l'inspecteur d'objets, la vue Structure, la vue Messages, etc. sont maintenant disponibles dans un sous-menu Fenêtres d'outils sous la commande de menu Fenêtres de débogage. Un nouveau sous-menu Editeur contient plusieurs actions d'édition et des fonctionnalités utiles. D'autres éléments ont été déplacés pour que les éléments connexes restent les uns à côté des autres.
Sous-menu Fenêtres d'outils Sous-menu Editeur
10.2 View Tool Windows.png 10.2 View Editor.png
  • Les menus contextuels relatifs aux fichiers du Gestionnaire de projets comportent maintenant un élément de menu "Afficher dans l'explorateur" qui permet d'afficher l'emplacement d'un fichier dans l'explorateur.
  • Le fichier manifest du projet prend maintenant en charge plusieurs niveaux d'exécution : Identique au demandeur, Le plus élevé disponible, et Nécessitant l'administrateur. L'indicateur Accès Interface utilisateur peut aussi être défini.
  • La vitesse de chargement de l'EDI doit rester rapide même en cas de forte charge réseau ou de connexion internet manquante.
  • La construction de groupes de projets très volumineux (ceux comprenant plus d'une centaine de projets) a été améliorée.

Débogueurs

Débogueurs iOS

  • Prise en charge complète du débogage iOS10 (depuis un correctif rapide 10.1 Berlin)
  • Prise en charge complète du débogage pour le simulateur iOS (depuis un correctif rapide 10.1 Berlin) - Delphi uniquement.
  • L'écriture de valeurs chaîne Delphi est prise en charge dans le débogueur iOS
  • L'évaluation de tableaux de caractères fournit le résultat escompté
  • Les erreurs produites à la fin de la session de débogage sont résolues (également sur macOS)

Débogueurs macOS

  • Prise en charge complète du débogage macOS Sierra (depuis un correctif rapide 10.1 Berlin)
  • Les erreurs produites à la fin de la session de débogage sont résolues (également sur iOS)

Débogueurs Linux

  • Prise en charge du débogage sur Linux (Delphi uniquement)

VCL

Corrections relatives aux résolutions élevées

Prise en charge améliorée de la haute résolution

  • Les limites des fiches sont correctement ajustées en réponse aux messages WM_DPICHANGED, ce qui signifie que TForm.AutoScroll fonctionne correctement, ainsi que la position supérieure/gauche de la fiche.
  • Les fiches s'ouvrent avec un facteur de mise à l'échelle correct lorsque le système comporte plusieurs moniteurs ayant des résolutions différentes.
  • TTabSheet et TPageControl, ainsi que les contrôles placés sur des feuilles à onglets ou des contrôles page
  • ActionMainMenuBar lorsqu'une fiche est déplacée sur différents moniteurs de résolutions différentes
  • Les menus VCL (menus principaux et menus popup) s'affichent correctement sur des moniteurs haute résolution
  • La hauteur de TStatusBar reste correcte en haute résolution
  • Les icônes des dialogues de message sont maintenant mises à l'échelle correctement
  • Les contrôles ancrés restent à la position voulue lorsqu'une fiche est déplacée sur des moniteurs ayant des résolutions différentes
  • TCheckBox et TRadioButton sont correctement dessinés
  • Plusieurs problèmes liés à l'héritage des fiches sont résolus. Ainsi, les contrôles utilisent maintenant la taille de fonte correcte lorsqu'ils sont placés sur un volet alors que ParentFont est défini sur True sur une fiche héritée, et la colonne de TListView est dimensionnée correctement sur une fiche héritée.

Autres améliorations

Installateur GetIt

  • Téléchargements parallèles améliorés.

Cloud

  • Prise en charge Azure et AWS améliorée avec des API mises à jour.

Compilateurs

  • Les compilateurs en ligne de commande Delphi sont maintenant orientés grande adresse mémoire, ce qui vous permet de compiler des applications plus grandes (et correspondant à la mémoire disponible lorsqu'ils sont invoqués dans l'EDI).
  • Du fait que les tableaux dynamiques sont des types gérés, comprenant le comptage des références et la génération de fonctions d'assistance, il est interdit de transtyper des éléments tableaux en utilisant l'opérateur @ car cela entraînerait une corruption de la mémoire. Il est possible de réaliser une opération similaire en utilisant un opérateur de transtypage explicite, sous la responsabilité du développeur.

Simulateur iOS 10, périphérique et macOS

  • Prise en charge complète d'iOS 10, comprenant le débogage iOS 10 32 bits et 64 bits sur le périphérique, prise en charge du simulateur (Delphi uniquement) et prise en charge de macOS Sierra.

Rubriques

Voir aussi

Outils personnels
Autres langues
Versions précédentes