10.4 Sydney - Release 1

De RAD Studio
Aller à : navigation, rechercher

RAD Studio 10.4 Sydney - Release 1 (aussi appelé 10.4.1) est disponible pour l'installation. 10.4.1 repose sur les fonctionnalités de 10.4 tout en proposant des améliorations et des ajouts. Delphi 10.4.1, C++Builder 10.4.1 et RAD Studio 10.4.1 peuvent être téléchargés par tout client abonné à Update Subscription.

RAD Studio 10.4.1 comporte essentiellement des améliorations visant à renforcer la qualité du produit. Cela concerne essentiellement les parties suivantes du logiciel :

  • EDI
  • Audit de code Delphi (Delphi Code Insight ou LSP)
  • Bibliothèque parallèle
  • SOAP & XML
  • Chaîne d'outils C++
  • FireMonkey
  • VCL
  • Compilateur Delphi
  • Déploiement iOS

RAD Studio 10.4.1 comprend les corrections apportées dans les correctifs suivants : 10.4 Patch 1, Patch 2, etPatch 3

En plus des améliorations de qualité, 10.4.1 comprend les nouvelles fonctionnalités mentionnées ci-après.

Installation de 10.4.1

Si vous avez déjà installé 10.4 Sydney (version datée du 26 mai 2020), vous devez effectuer une désinstallation complète avant d'installer 10.4 Sydney - Release 1. Dans le cadre du processus de désinstallation, une option vous proposera de préserver vos paramètres de configuration. Cette option est activée par défaut. Vous pouvez également préserver les paramètres avec l'outil de migration des paramètres.

Principales améliorations dans 10.4.1

Plates-formes prises en charge

RAD Studio prend maintenant en charge le déploiement d'apps sur Windows Server 2019.

EDI

Projets

  • Suffixe automatique pour les versions de packages : les packages peuvent désormais avoir un suffixe automatique de numérotation des versions, ce qui vous évitera de mettre à jour manuellement le suffixe de version pour chaque nouvelle release. (Le compilateur prenait en charge cette fonctionnalité de façon silencieuse dans 10.4. Toutefois, une prise en charge intégrale est introduite dans 10.4.1 au niveau de l'EDI et des paramètres de projet.)
  • L'option Opérations FDIV du Pentium sécurisées n'apparaît plus dans les options du compilateur Delphi.
  • Depuis 10.3, les éléments du menu contextuel Projets nétaient plus disponibles (auparavant appelés par un clic droit sur une zone vide du volet Projets). Ils sont maintenant disponibles dans une liste déroulante accessible depuis la barre d'outils du volet Projets.

Dispositions (Layouts)

  • Prise en charge améliorée des dispositions de bureau multi-moniteurs pour les utilisateurs faisant appel à plusieurs fenêtres de l'éditeur en utilisant plusieurs écrans.
  • Le concepteur de fiche flottante n'existe plus. Sachez que vous pouvez toujours avoir plusieurs fenêtres d'édition avec notamment un concepteur de fiches affiché dans une seconde fenêtre (la prise en charge de cette fonctionnalité a été améliorée).
  • Lorsque vous passez d'une disposition de l'EDI à une autre, par exemple lors du basculement vers ou depuis le débogage, ou vers ou depuis le démarrage (lors de l'ouverture ou de la fermeture d'un projet), si la même disposition est utilisée pour les deux états, la disposition ne sera pas appliquée. Cela évite de basculer inutilement entre les dispositions.
  • Les dispositions de bureau qui ne peuvent être appliquées (par ex. les dispositions flottantes qui ne sont plus prises en charge) sont grisées dans la zone Disposition de bureau dans la barre de titre. Si une disposition flottante est appliquée, l'EDI affiche un dialogue.
  • Prise en charge améliorée pour les moniteurs 4K : désormais, l'EDI restaure correctement les dispositions sur les moniteurs 4K lorsque l'écran 4K n'est pas mis à l'échelle.
  • Si l'EDI ne parvient pas à trouver un fichier .dsk attendu, il s'ouvre avec la disposition par défaut.

IU

  • Boîtes de dialogue Options et autres boîtes de dialogue
    • Les boîtes de dialogue Options de projet, Options de l'EDI, GetIt et Nouveaux éléments disposent d'une barrre de défilement qui permet de faire défiler l'intégralité de la boîte au fur et à mesure que vous utilisez la barre de défilement. Vous pouvez également utiliser la molette de la souris.
    • La boîte de dialogue Options (Options d'environnement) s'ouvrait habituellement en affichant les paramètres relatifs à la plate-forme cible Win64. Elle s'ouvre désormais en affichant les paramètres relatifs à la plate-forme active.
  • Certains contrôles vue liste peu lisibles avec le thème Sombre ont été remplacés par une vue arborescente virtuelle.
  • La visite guidée a été retirée de la page d'accueil.
  • Plusieurs corrections ont été apportées à l'inspecteur d'objets, notamment au sujet du scintillement et de la sélection de propriété erronnée.
  • La sélection d'éléments a été améliorée dans le volet Structure, notamment concernant la sélection d'un élément alors que l'utilisateur a cliqué sur un autre élément.

Informations générales

  • L'option ‘Diffuser vers les périphériques’ est désactivée par défaut. En provoquant un accès au réseau dès le démarrage de l'EDI, cette option générait des erreurs pour certains utilisateurs. Maintenant que cette option est désactivée, les erreurs réseau ne surviendront que si l'option est à nouveau activée.
  • Le nom des débogueurs Windows 64 bits affiché dans la boîte de dialogue Attacher au processus a été clarifié pour distinguer celui pour Delphi et celui pour C++. Cela facilitera le choix des utilisateurs lors de la sélection du débogueur à attacher au processus.

Corrections mineures ayant une certaine importance

  • ‘Supprimer les chemins incorrects’ ne devrait plus supprimer les chemins valides.
  • Le déplacement des barres d'outils ne présente plus de problèmes.
  • "-showotamenunames" (utilisé par les développeurs ToolsAPI) a été réactivé.
  • L'édition d'une liste de chaînes dans l'éditeur de code fonctionne à nouveau.
  • Les boîtes de dialogue de l'EDI sont affichés dans le style Moderne.
  • Les problèmes de dessin tels que l'affichage de la fenêtre de l'EDI dans une couleur solide lors de l'ouverture d'un projet sont résolus.
  • Sur Windows 7, la barre de titre n'affiche plus de ligne blanche dans la partie supérieure.
  • L'éditeur d'actions dessinait les images en noir. Le problème est maintenant résolu.
  • Certains menus de l'EDI sont maintenant correctement dessinés (comme les menus déroulants dans les audits). Par ailleurs, certains menus qui n'affichaient pas l'état Activé le font maintenant.
  • Le chemin de recherche des symboles de débogage prend maintenant en charge les variables d'environnement $(Platform) et $(Config).
  • L'éditeur de code vous permettait de sélectionner des codages incorrects pour une unité (cela concernait uniquement les fiches). Ces codages ne sont maintenant plus disponibles.
  • Un problème signalant l'impossibilité de charger des packages du fait d'un nom de fichier différent sur disque et survenant dans de gros projets a été résolu.

Delphi LSP/ Modifications relatives à l'achèvement de code

  • Améliorations relatives aux performances :
    • Améliorations relatives à l'utilisation de la mémoire dans les processus Delphi LSP (moins de mémoire utilisée)
    • Améliorations en terme de vitesse : les suggestions en matière d'achèvement de code doivent apparaître plus rapidement
  • Depuis la fonctionnalité Achèvement de code, accédez à la définition et pointez avec la souris. Vous constaterez une amélioration (par exemple, l'achèvement de code propose une liste de symboles améliorée).
  • De nouvelles options permettent de contrôler et d'adapter l'achèvement de code. Ces paramètres sont présentés ci-après.
  • Si vous filtrez l'achèvement de code au fur et à mesure que vous tapez votre code, les caractères correspondants s'affichent en souligné (paramètre facultatif).
  • Les paramètres relatifs à l'achèvement de code apparaissent maintenant dans la page des paramètres de l'Audit de code.
  • Les fichiers modifiés en dehors de l'EDI (via un éditeur externe ou un outil de contrôle de source) sont reconnus par le serveur LSP et analysés.
  • Des corrections ont été apportées à la fonctionnalité Audit de code (pas de résultats affichés, affichage d'un symbole + dans le chemin, etc.).
  • Gestion améliorée des packages
    • Les packages contenant des unités ne génèrent plus d'erreurs
    • L'achèvement de code propose des symboles provenant d'un package requis
    • De fausses erreurs étaient parfois signalées dans les packages. Ce problème devrait maintenant être résolu.
    • L'achèvement de code a été amélioré de manière générale.
  • L'audit d'aide affiche du contenu exact lorsque la souris pointe sur un symbole.
  • L'achèvement de code fonctionne lorsque l'option ‘Utiliser MSBuild de façon externe pour compiler’ est activée.
  • Des erreurs liées à la restitution des soulignements rouges ont été résolues notamment lorsque la longueur de la ligne de soulignement rouge était erronnée.
  • Lorsque l'achèvement de code était configuré pour trier par nom plutôt que par portée, la sélection d'un élément provoquait l'insertion d'un texte erronné. Le problème est désormais résolu.
  • 10.4.1 inclut également les corrections de 10.4 Patch 2. Cela comprend les corrections suivantes : la non insertion des parenthèses () lorsqu'elles existent déjà, la non sélection de l'achèvement en cours lors de l'appui sur la touche Espace, retard au niveau de l'achèvement et saisie de texte incorrecte, retard d'affichage de l'audit d'erreur dans le volet Structure, etc.

Audit de code pour les projets volumineux

Les corrections suivantes s'appliquent tout particulièrement aux projets volumineux. Les corrections de performances et d'utilisation de la mémoire mentionnées précédemment concernent aussi les projets volumineux.

  • Des améliorations ont été apportées au compilateur concernant les tentatives d'analyse suite à des erreurs fatales.
  • Des améliorations ont été apportées concernant les notifications du serveur suite à des changements d'EDI. Cela réduit la modificabilité du code et améliore la précision de l'achèvement de code.

Améliorations de la RTL

Nouvel enregistrement TLightweightMREW

Un nouveau verrouillage reader-writer a été implémenté, il fonctionne sur l'ensemble des plates-formes supportées et est plus rapide et souple que TMultiReadExclusiveWriteSynchronizer (aussi appelé TMREWSync). TLightweightMREW inclut une implémentation native du verrouillage reader-writer sur chaque plate-forme.

Pour plus d'informations, reportez-vous à la documentation TLightweightMREW.

Bibliothèque de programmation parallèle

De nombreuses corrections ont été apportées à TThread.WaitFor, TParallel.For, TParallel.Join, TConditionVariableMutex.WaitFor for Linux, TTask.WaitForAny, et la classe IdleWorkerThreadCount de TPoolThread. Des problèmes en lien avec PopItem ont aussi été résolus pour TThreadedQueue, notamment concernant l'utilisation d'un grand nombre de threads.

SOAP et XML

  • Améliorations XML : des améliorations ont été apportées au composant TXMLDocument, notamment en ce qui concerne les divers DOMVendors supportés (OmniXML, ADOM). Certains des problèmes concernaient la prise en charge UTF et l'encodage.
  • Importateur SOAP WSDL : amélioration de la logique d'importation WSDL et de l'invocation des clients SOAP.

Clients Web

  • Winapi.Winsock2 inclut maintenant inet_ntop pour mieux prendre en charge les adresses IPv6
  • TRESTResponseDataSetAdapter importe les chaînes JSON en utilisant la longueur appropriée
  • Prise en charge améliorée des énumérations dans TJSONSerializer
  • Quelques corrections ont été apportées à TRestResponseDataSetAdapter
  • La création d'un TIPAddress à partir d'une URL fonctionne maintenant sur Windows
  • Apple a rendu l'API NSURLConnection obsolète sur Mac OS X 10.11 et iOS 9, alors qu'elle était toujours utilisée dans notre bibliothèque client HTTP. 10.4.1 introduit la prise en charge de l'API NSURLSession sur les deux plates-formes. Cette modification résout également des problèmes liés à la prise en charge des proxys sur macOS.

Base de données

  • Un nombre significatif de problèmes DataSnap ont été résolus incluant notamment des problèmes de performances et des fuites de mémoire, des problèmes liés à MidasLib, DatasetProvider et TClientDataSet
  • Prise en charge FireDAC améliorée pour les paramètres de fonction de SQL Server
  • Correction apportée à TFDMemTable FindFirst avec IndexFieldNames
  • TFDQuery amélioré avec les champs calculés et les champs BLOB
  • Amélioration par rapport à l'ordre des champs d'index multi-colonne PostgreSQL de TFDTable
  • Analyse FIREDAC-PostgreSQL des chaînes QuoteTag

Autres améliorations de la RTL

  • Améliorations de performance pour les TStrings ayant un saut de ligne personnalisé
  • Méthodes TObject personnalisées renvoyant ou vérifiant des chaînes
  • Fonctions UTF8IdentXxx exposées
  • LoadResString optimisé

Améliorations de la VCL

  • Plusieurs régressions liées à TGrid dans 10.4 (déjà adressées partiellement dans 10.4 Patch 2) ont été résolues. Cela inclut notamment TStringGrid et d'autres contrôles grille, des problèmes d'alignement dans la méthode StretchDraw dans OnDrawCell, etc.
  • Des améliorations ont été apportées à la façon dont les TGridPanel gèrent l'espacement basé sur le pourcentage. Vous pouvez maintenant spécifier des pourcentages exacts pour les colonnes et les lignes et les appliquer (vous deviez auparavant les modifier au fur et à mesure qu'ils étaient définis). L'utilisation du contrôle TGridPanel est ainsi largement améliorée car vous obtenez exactement l'espacement nécessaire.
  • Les glyphes intégrés aux TBitBtn sont maintenant en HighDPI et ont subi des améliorations de mise à l'échelle
  • La barre de titre personnalisée prend en charge la mise à l'échelle High DPI et compte quelques améliorations en matière de qualité
  • La propriété Position du composant TUpDown et l'événement OnChangingEx ont subi des améliorations
  • Le composant StatusBar prend en charge le dessin DoubleBuffered
  • Les méthodes SetTabIndex de TPageControl fonctionnent maintenant correctement lorsque des onglets sont cachés
  • Le texte de TDateTimePicker ne paraît pas flouté lorsque le pointeur de la souris est déplacé
  • Dans TLabel, le retour à la ligne a été amélioré en modifiant la logique de calcul de la hauteur de la police
  • L'infotip de TListView reste visible plus longtemps
  • La bordure des contrôles de base de données a la même apparence que celle des contrôles non orientés données
  • Plusieurs améliorations de style
  • Des améliorations ont été apportées concernant la largeur des libellés des éléments de menu de niveau supérieur dessinés par le propriétaire, ainsi que les menus stylés et leur mise à l'échelle
  • Les styles respectent les positions de texte de TButton et des valeurs ImageMargins de TButton

FireMonkey

Améliorations relatives aux TMemo FMX

Nous poursuivons nos travaux sur l'architecture du nouveau composant TMemo de FireMonkey (FMX TMemo) avec l'ajout d'améliorations à l'implémentation Windows et l'ajout du support pour macOS. L'essentiel des efforts porte sur le mode IME du TMemo pour le coréen, le japonais et le chinois (parmi d'autres langues). D'autres améliorations générales ont aussi été apportées en matière de performances, stabilité, comportement de défilement, sélection de la souris, copier-coller, etc. Des corrections ont aussi été apportées au composant TEdit.

Corrections mineures ayant une certaine importance

  • L'écran de lancement du Storyboard prend maintenant en charge les tailles d'icônes requises par Apple pour iOS.
  • Amélioration de la gestion des permissions pour les notifications Push iOS
  • OnItemClick de TListView se déclenche même s'il est déjà sélectionné
  • Résolution d'un problème de valeurs incohérentes pour TMediaPlayer.Duration sur Android
  • Problème relatif aux liens externes dans WebBrowser iOS
  • Evénement OnCellDblClick de TStringGrid
  • Disparition de l'accessoire Coche pour le composant TListView

Langage Delphi

La release 10.4.1 apporte des améliorations du langage Delphi dans diffférentes parties du produit. Les améliorations portent essentiellement sur la prise en charge de l'achèvement de code LSP et la qualité des enregistrements managés. Des regressions constatées dans 10.4 ont aussi été résolues ainsi que des changements inattendus (comprenant notamment des problèmes liés aux instructions goto et d'autres scénarios peu communs). Des améliorations ont été apportées dans les références de packages et dans la génération des fichiers HPP C++. La release apporte également des améliorations de performances pour le compilateur (optimisation de la recherche des noms d'unités et d'autres recherches internes tout particulièrement pour les projets volumineux). Des améliorations en matière de génération de code ont aussi été apportées (dans les cas où le compilateur peut générer du code optimisé).

Enregistrements managés

Cette release améliore la qualité des enregistrements managés, avec notamment :

  • L'optimisation des valeurs de retour
  • Le nettoyage de plusieurs erreurs du compilateur
  • Des améliorations apportées à l'opérateur Assign
  • Des modifications apportées à Default(T) pour les enregistrements managés
  • Une meilleure coexistence des enregistrements managés et génériques
  • La non invocation de Initialize dans certains cas

Langage C++

Débogueur Win64

  • Le débogueur LLDB Win64 comporte plusieurs améliorations, notamment concernant l'interception des exceptions et les performances (tout particulièrement lorsqu'il y a plusieurs threads).
  • Résolution d'un problème lié à l'invocation des visualiseurs Delphi : les visualiseurs ne sont plus invoqués pour TStringList, Currency et TDateTime.
  • Résolution d'un problème qui provoquait l'affichage d'une boîte de dialogue d'exception lors de l'utilisation de la touche F7 pour lancer une nouvelle session de débogage.
  • La gestion des exceptions du système d'exploitation a été améliorée.
  • Des améliorations de performances ont été apportées à l'EDI lors d'une exécution pas à pas avec des centaines de threads.

Lieur

  • Le lieur Win64 (ilink64) a subi des améliorations significatives en matière de gestion de la mémoire. Cela devrait résoudre les erreurs de mémoire insuffisante avec les projets volumineux ou les builds de débogage.

Gestion des exceptions

  • Certains problèmes de gestion des exceptions ont été résolus. Cela inclut un problème affectant l'allocation de mémoire ACE/TAO, dans lequel l'API Windows peut lancer une exception SEH.

Améliorations générales relatives à la qualité

  • Des résolutions de bugs ont été apportées au compilateur Clang (plantages, ICE, etc.).
  • Des problèmes à l'origine de RTTI pour les closures ont été résolus.
  • Des améliorations ont été apportées lors de la génération des informations de débogage notamment pour les classes de style Delphi.
  • Des améliorations ont été apportées à la RTL, principalement autour de la suppression de la macro de compatibilité MFC et l'exportation des symboles. Des problèmes de compatibilité ont été résolus par rapport au support des bibliothèques C++ communes.

Autres améliorations

  • Résolution d'un accès de violation dans l'application Gestionnaire de licences.
  • L'invocation directe de GetItCmd.exe ne supprime plus les packages installés sur votre système

Voir aussi