Notes de release

De RAD Studio
Aller à : navigation, rechercher

Remonter à Nouveautés


Ces notes de release contiennent des informations importantes qui peuvent ne pas apparaître dans la documentation principale du produit. Nous vous recommandons de lire cette page en entier.

Sommaire

Installation, désinstallation et mise à niveau de RAD Studio

Avant d'installer, de désinstaller ou de mettre à niveau le produit, lisez les fichiers suivants, pour la langue de votre choix (xx en, de, fr ou ja) :

  • radstudio_install_xx.htm : contient les exigences système ainsi que les procédures d'installation et de mise à niveau.
  • radstudio_license_xx.rtf : c'est votre contrat de licence logicielle et de support.
  • radstudio_deploy_xx.htm : contient des informations sur le déploiement.

Consultez la version la plus récente du fichier radstudio_install_xx.htm, disponible aux emplacements suivants :

  • Notes d'installation.
  • Le répertoire d'installation. L'emplacement par défaut est : C:\Program Files (x86)\Embarcadero\Studio\21.0

Installateur hors ligne

  • Téléchargez l'installateur et le fichier .gof dans le même dossier
  • Démarrez l'installateur

Le mode hors ligne est automatiquement détecté et l'image hors ligne est utilisée pour installer les fonctionnalités de RAD Studio.

Si vous utilisez l'installateur hors ligne, RAD Studio ne pourra pas accéder au Gestionnaire de packages GetIt tant que vous n'aurez pas basculé manuellement vers le mode "en ligne". Pour y parvenir, il est recommandé d'utiliser l'outil GetItCmd.exe : GetItCmd.exe -c=useonline

Versions précédentes et migration

RAD Studio inclut des licences pour les versions antérieures

Les licences des versions antérieures du produit sont incluses avec votre licence 10.4 Sydney.

  • {Delphi}} 10.4 Sydney inclut les licences pour Delphi Rio, Tokyo, Berlin, Seattle, XE8, XE7, XE6, XE5, XE4, XE3, XE2, XE, 2010, 2009, 2007 et 7.
  • C++Builder 10.4 Sydney inclut les licences pour C++Builder Rio, Tokyo, Berlin, Seattle, XE8, XE7, XE6, XE5, XE4, XE3, XE2, XE, 2010, 2009, 2007 et 6.

Pour de plus amples informations sur les licences, consultez le fichier radstudio_license_xx.rtf dans le répertoire d'installation de RAD Studio.

Mise à niveau des projets à l'ouverture

Dans RAD Studio 10.4 Sydney, lorsque vous ouvrez un projet créé avec une version précédente de RAD Studio, RAD Studio effectue automatiquement la mise à niveau du projet. Une fois mis à niveau, les projets ne sont plus compatibles avec les versions précédentes de RAD Studio.

Vous devez toujours créer une sauvegarde de votre projet avant de l'ouvrir avec une nouvelle version de RAD Studio.

Les firewalls peuvent bloquer les fichiers d'installation GetIt

Si votre firewall bloque les fichiers .7z, l'installation GetIt échouera.

Windows

Les DLL exportent des méthodes RTL

Lors de la liaison d'une application 64 bits avec la bibliothèque d'importation d'une DLL dans le Gestionnaire de projets, la bibliothèque est placée sur la ligne de commande du lieur, connectant ainsi le lieur au symbole __CPPdebugHook dans la bibliothèque d'importation de la DLL, plutôt qu'avec son propre symbole RTL interne. Pour éviter ce comportement, liez la bibliothèque d'importation en utilisant #pragma link ou #pragma comment et retirez la référence à la bibliothèque d'importation dans le Gestionnaire de projets. Cela oblige le lieur à consulter les symboles dans la bibliothèque d'importation à la fin de l'opération, et à effectuer la liaison avec le symbole __CPPdebugHook correct dans sa propre RTL.

Problèmes lors de la reconstruction d'un MSBuild pour la deuxième fois

Lorsqu'un MSBuild est reconstruit pour la deuxième fois avec ou sans fichier ressource supplémentaire, c'est lors de l'étape clean de la reconstruction qu'il est décidé si la version du fichier ressource de projet fera l'objet du build.

Pour empêcher que cela se produise, effectuez un clean suivi d'un build :


> msbuild /t:clean project.cbproj

> msbuild /t:build project.cbproj

Linux

Le message d'erreur PAServer affiché sur Ubuntu Server 16.04 LTS est incorrect

L'activation de Utiliser l'application de lancement dans la boîte de dialogue Exécuter|Paramètres utilise xterm comme application de lancement par défaut pour les cibles Linux. Lors de l'exécution de PAServer sur Ubuntu Server 16.04 LS, un message d'erreur indique qu'un fichier ne peut pas être créé. Ce message d'erreur est incorrect car le problème réside dans le fait qu'il ne peut pas lancer xterm sur Ubuntu Server 16.04 LTS. Xterm peut être installé séparément et fait partie des distributions client d'Ubuntu.

FireMonkey

Des noms doivent être assignés à tous les composants avant de créer une nouvelle vue dans le Concepteur de fiches

Si vous ouvrez une ancienne app FireMonkey dans 10.4 Sydney, vous pouvez rencontrer le message d'erreur suivant :

 Cannot inherit from form 'FormName".  It contains a component with a blank name property.

Le nouveau système Héritage des vues nécessite l'affectation d'un nom à tous les composants avant de créer une nouvelle vue dans le Concepteur de fiches.

macOS 64 bits

Inspection et évaluation de structures dans macOS 64 bits

Sur macOS64, les structures transmises dans une méthode sous forme de valeur de paramètre peuvent afficher des valeurs erronées dans le débogueur.

Inspection et évaluation de structures dans macOS 64 bits

Il est possible de développer des variables en mode inspection pour afficher les valeurs des champs qu'elles contiennent. Toutefois, les sous-valeurs ne sont pas actualisées dans l'interface du débogueur lorsque la valeur de la variable change.

Sur macOS 64 bits, l'évaluation prend en compte la distinction majuscules/minuscules.

Pour des raisons techniques, l'évaluation sur macOS 64 bits (comme les expressions dans la boîte de dialogue Evaluer/modiifer) est sensible à la casse. C'est comme sur iOS 64 bits. Certaines situations nécessitent d'utiliser une syntaxe de style C++, comme utiliser un préfixe 0x pour les valeurs hexadécimales au lieu de $.

FireDAC

Utilisation des packages d'exécution avec le pilote DataSnap de FireDAC dans C++

Si vous utilisez le pilote DataSnap de FireDAC dans les applications C++ 64 bits construites avec des packages d'exécution, il se peut que vous receviez une erreur au moment de l'exécution. Pour éviter cette erreur, vous devez ajouter DataSnapClient aux packages d'exécution, en procédant comme suit :

  1. Projet > Options > Packages > Packages d'exécution.
  2. Dans le champ Bibliothèques d'importation des packages d'exécution, ajoutez DataSnapClient à la liste.

Le problème est résolu et DataSnapClient.bpi est ajouté à la ligne de lien au lieu de DataSnapClient.a.

Une application C++ Windows 64 bits comportant un composant FireDAC peut déclencher une erreur

L'erreur suivante est déclenchée lors d'une tentative de compilation d'une application utilisant un seul composant FireDAC sur la plate-forme Windows x64 lorsque la liaison statique est activée :

c:\program files (x86)\embarcadero\studio\<n.n>\Bin\CodeGear.Cpp.Targets : warning : Warning: Out of memory
c:\program files (x86)\embarcadero\studio\<n.n>\Bin\CodeGear.Cpp.Targets(2751,5): error MSB6006: "ilink32" exited with code 2.

La solution consiste à ne pas lier FireDAC de façon statique dans les apps Win64 C++.

Base de données

Repopulation des ensembles de données

La repopulation d'un ensemble TClientDataSet ou TFDMemTable peut être plus lente que prévu. Pour contourner ce problème, nous avons ajouté une nouvelle méthode EmptyDataLink à TBindSourceDB.

Android

Problèmes de chemin JDK

A cause d'un bogue (EN) du JDK (Java Development Kit), le chemin de déploiement d'un projet ne doit pas contenir de caractères non ASCII pour la plate-forme cible Android.

Correction du fichier string.h pour Android

Lorsque vous utilisez C++ Builder pour créer une application FMX pour Android, et tout particulièrement si vous utilisez l'installateur hors ligne, suivez les étapes ci-dessous pour corriger manuellement le fichier string.h :

  1. Double-cliquez sur le message d'erreur.
  2. L'EDI ouvre le fichier string.h.
  3. Accédez à la ligne qui contient le commentaire suivant :
    /* Const-correct overloads. Placed after FORTIFY so we call those functions, if possible. */
    
  4. Modifiez comme ci-dessous la ligne après le commentaire mentionné précédemment :
    Avant
    #if defined(__cplusplus) && defined(__clang__)
    Après
    #if defined(__cplusplus) && defined(__clang__) && ((__clang_major__ > 3) || (__clang_minor__ > 4))

Reportez-vous à l'exemple ci-dessous pour savoir comment votre code doit être modifié lors de la génération d'un .diff :

--- string.h.orig
+++ string.h.modified
@@ -188,7 +188,7 @@
 #endif
 
 /* Const-correct overloads. Placed after FORTIFY so we call those functions, if possible. */
-#if defined(__cplusplus) && defined(__clang__)
+#if defined(__cplusplus) && defined(__clang__) && ((__clang_major__ > 3) || (__clang_minor__ > 4))
 /*
  * Use two enable_ifs so these overloads don't conflict with + are preferred over libcxx's. This can
  * be reduced to 1 after libcxx recognizes that we have const-correct overloads.

Mises à jour du fichier manifeste Android dans 10.4

Pour les nouveaux projets FireMonkey créés dans un nouveau répertoire, il n'est pas nécessaire de suivre l'étape ci-dessous pour utiliser la prise en charge de l'EDI pour la plate-forme Android. Si vous avez déjà conçu un projet FMX pour la plate-forme Android avec une version RAD Studio antérieure, vous devez supprimer AndroidManifest.template.xml de votre répertoire projet car il sera re-créé automatiquement dans 10.4.

iOS

Utilisation du Storyboard iOS

Pour les nouveaux projets FireMonkey créés dans un nouveau répertoire, il n'est pas nécessaire de suivre des étapes supplémentaires pour utiliser la prise en charge de l'EDI pour le storyboard.

Si vous avez déjà conçu un projet FMX pour la plate-forme iOS avec une version RAD Studio antérieure, vous devez supprimer info.plist.TemplateiOS.xml de votre répertoire projet.

Dans 10.4, deux étapes distinctes permettent de personnaliser l'écran de lancement du storyboard pour iOS, selon que vous utilisez votre propre storyboard compilé ou que vous en créez un nouveau à partir des éléments fournis dans 10.4.

Option 1) L'utilisateur fournit son propre storyboard compilé et le catalogue d'actifs (*.storyboardc et Assets.car). Pour poursuivre dans 10.4, procédez comme suit :

  • Dans Projet | Déploiement, désactivez *.launchscreen pour qu'il ne soit pas déployé
  • Si le fichier storyboard n'est pas nommé LaunchScreen.storyboard, vous devez modifier le fichier info.plist.TemplateiOS.xml et remplacer la valeur "<%StoryboardInfoPListKey%>" par la valeur "UILaunchStoryboardName".
  • Ouvrez Projet | Déploiement et ajoutez le storyboard compilé et le catalogue d'actifs

Option 2) L'utilisateur modifie le storyboard par défaut et le catalogue d'actifs fournis par l'EDI. Si vous avez opté pour cette option, suivez les étapes ci-après :

  • Modifiez les fichiers LaunchScreen.storyboard et Assets dans LaunchScreen.TemplateiOS
  • Ouvrez Projet | Déploiement et ajoutez si besoin des images d'écran de lancement

Les templates info.plist.TemplateiOS.xml et LaunchScreen.TemplateiOS se trouvent à l'emplacement suivant :

a. <bds>\ObjRepos\<locale>\iOS
b. %APPDATA%\Embarcadero\BDS\21.0
c. the location where the project is located.

L'EDI recherche ces templates dans l'ordre suivant : Répertoire projet, répertoire  %APPDATA% et répertoire ObjRepos.

Chaînes d'outils C++

Spécification des packages dépendants et requis lors de l'utilisation d'un composant dans un package C++

Lors de l'utilisation d'un composant existant dans un package C++, l'EDI n'ajoute pas automatiquement le package dépendant (requis) du composant. Vous devez effectuer cette étape manuellement.

En l'absence des packages dépendants (requis) nécessaires, la liaison du package C++ échouera, car le lieur ne pourra pas localiser les fichiers .obj qui doivent être initialisés lors de l'utilisation du composant. Pour éviter ces erreurs du lieur, vous devez ajouter le package du composant et ses dépendances au noeud Requiert de votre package C++ (dans le Gestionnaire de projets).

L'exemple suivant illustre comment déterminer les packages requis pour un composant et éliminer les erreurs du type Impossible d'ouvrir 'xxx.obj du lieur en créant une application Fiches VCL factice qui utilise le composant.

Par défaut, une nouvelle application multi-périphérique C++ est liée avec les packages .rtl et .fmx, comme le montrent les fichiers *.bpi listés sur la ligne de liaison (visible dans Voir > Messages) :

Ligne de commande ilink32 :

c:\BDSLoc\bin\ilink32.exe ... -aa -V5.0 -Tpe  c0wfmx32w rtl.bpi fmx.bpi memmgr.lib sysinit.obj .\Win32\Debug\Project30.obj .\Win32\Debug\Unit26.obj , .\Win32\Debug\Project30.exe , .\Win32\Debug\Project30.map , import32.lib cp32mti.lib , , Project30.res

Lorsque vous ajoutez de nouveaux composants, l'EDI détermine les packages dépendants et ajuste la ligne de liaison. Pour voir ce comportement, ajoutez le composant que vous voulez utiliser dans un package C++ à la fiche multi-périphérique. Cet exemple utilise le composant TFDSchemaAdapter. Reconstruisez maintenant l'application. Constatez que plusieurs nouveaux fichiers .bpi ont été ajoutés à la ligne de liaison :

Ligne de commande ilink32 :

c:\BDSLoc\bin\ilink32.exe ... -aa -V5.0 -Tpe  c0w32w rtl.bpi fmx.bpi FireDACCommonDriver.bpi FireDACCommon.bpi xmlrtl.bpi dbrtl.bpi FireDAC.bpi FireDACSqliteDriver.bpi memmgr.lib sysinit.obj .\Win32\Debug\Project30.obj .\Win32\Debug\Unit26.obj , .\Win32\Debug\Project30.exe , .\Win32\Debug\Project30.map , import32.lib cp32mti.lib , , Project30.res

Ces nouveaux fichiers .bpi sont les packages dont votre composant dépend. Dans le cas de TFDSchemaAdapter, les fichiers .bpi sont les suivants :

FireDACCommonDriver.bpi FireDACCommon.bpi xmlrtl.bpi dbrtl.bpi FireDAC.bpi FireDACSqliteDriver.bpi

Ainsi, afin d'utiliser le composant TFDSchemaAdapter dans un package C++, vous devez ajouter explicitement chacun de ces fichiers bpi en tant que référence 'Requiert' dans l'EDI (voir Packages (Delphi)).

Téléchargement des fichiers d'en-tête DirectX

Nous fournissons uniquement les en-têtes DirectX à l'intérieur du Microsoft Windows Platform SDK. Si vous rencontrez des erreurs telles que "Fichier d3d.h non trouvé", le HPP généré pour cette unité Delphi contient #include <D3D*.hpp>. Effectuez l'une des opérations suivantes :

  • Ajoutez une directive {$NOINCLUDE Winapi.D3DX9} à l'unité qui utilise l'unité D3D et régénérez le fichier HPP de cette unité. Le HPP régénéré ne contiendra pas #include <Winapi.D3DX9.hpp>.
  • Téléchargez le DirectX SDK sur lequel est basé l'en-tête D3D. Vous pouvez télécharger gratuitement le DirectX SDK depuis le site de Microsoft. Pour plus d'informations, voir Where is the DirectX SDK? (Windows) (EN).

EDI

Un projet iOS renommé peut échouer à l'exécution ou au débogage

Le fait de renommer un projet dans l'EDI peut provoquer l'échec d'une app iOS à l'exécution ou au débogage. Pour corriger le problème, procédez comme suit :

  1. Sélectionnez Projet > Déploiement.
  2. Dans le Gestionnaire de déploiement, cliquez sur le bouton Revenir aux valeurs par défaut.

Héritage des paramètres d'informations de version

Pour inclure des informations de version dans un projet ciblant Windows, ne changez pas les valeurs clés sur la cible Toutes les plates-formes. Changez individuellement les valeurs de chaque plate-forme (32 bits et 64 bits). Les cibles n'héritent pas correctement des valeurs à partir de la cible Toutes les plates-formes.

InterBase

InterBase 2020 Edition dans RAD Studio 10.4 Sydney

Cette note concerne les utilisateurs ayant installé une version antérieure de RAD Studio et RAD Studio 10.3 Rio sur la même machine. Dans cette note, la mention de RAD Studio inclut implicitement les éditions Delphi et C++Builder.

Chaque version de RAD Studio inclut une licence pour une version d'InterBase :

Produit Version d'InterBase
RAD Studio XE3 InterBase XE3 Developer Edition
RAD Studio XE4 InterBase XE3 Developer Edition
RAD Studio XE5 InterBase XE3 Developer Edition
RAD Studio XE6 InterBase XE3 Developer Edition
RAD Studio XE7 InterBase XE3 Developer Edition
RAD Studio XE8 InterBase XE7
RAD Studio XE9 InterBase XE7
RAD Studio Berlin InterBase XE7
RAD Studio Tokyo InterBase XE7
RAD Studio Rio InterBase 2017
RAD Studio Sydney InterBase 2020

Etant donné que toutes ces licences de RAD Studio sont visibles à l'échelle du système, il n'est possible d'utiliser qu'une seule licence d'InterBase à la fois.

Par exemple, si vous exécutez la version "InterBase XE3 Developer Edition" livrée avec RAD Studio XE6, vous ne pouvez pas démarrer une instance simultanée de "InterBase XE3 Developer Edition" livrée avec RAD Studio XE7. Vous ne pouvez pas non plus démarrer une instance simultanée de l'édition InterBase 2020 livrée avec RAD Studio 10.4 Sydney. Lorsque vous tentez de le faire, vous recevez un message d'erreur signalant une erreur de licence InterBase et le journal InterBase indique "Registration file error: License is in use by another instance of InterBase".

Pour plus d'informations sur l'exécution de plusieurs instances d'InterBase, voir la section Multiple Instances dans le document Operation Guide (EN).

Solution pour les erreurs de licence relatives à InterBase

  1. Arrêtez toutes vos instances d'InterBase. Par ailleurs, si vous avez configuré cette instance en tant que service Windows, veuillez la désactiver dans le Panneau de configuration Services du système.
  2. Démarrez l'instance d'InterBase que vous voulez utiliser. Elle devrait maintenant s'exécuter avec la licence appropriée.

Les versions de RAD Studio susmentionnées et les applications construites par ces versions peuvent aussi fonctionner avec la version mise à jour d'InterBase 2020 installée avec RAD Studio 10.4 Sydney. Connectez vos anciens outils et applications de l'EDI à votre base de données par boucle de rappel TCP à cette instance d'InterBase. Par exemple :

localhost/gds_db:<dbpath>

Dans les anciennes versions de RAD Studio, vous pouvez aussi sélectionner Outils > Options > Options d'environnement > Variables d'environnement et ajouter les nouvelles entrées "Redéfinitions utilisateur" suivantes pour établir les connexions client locales.

Variable Valeur
IB_Protocol gds_db
InterBase C:\Program Files (x86)\Embarcadero\Studio\21.0\InterBase2020

Problèmes connus

Les ordinateurs HP incluent une variable d'environnement nommée PLATFORM qui, si définie à une autre valeur que "Win32", "Win64", ou "OSX32" provoque l'erreur suivante à la compilation :

Variable PLATFORM non valide "(valeur)". PLATFORM doit prendre l'une des valeurs suivantes : "Win32", "Win64", "Android32Arm", "iOSSimulator32", "iOSDevice32" "iOSDevice64", ou "OSX32", ou "OSX64", ou "Linux64".

Procédez comme suit pour retirer la variable d'environnement PLATFORM de votre système :

  1. Sur le bureau, cliquez avec le bouton droit sur Poste de travail.
  2. Sélectionnez Propriétés.
  3. Selon votre système d'exploitation, sélectionnez l'onglet Avancés ou Paramètres système avancés.
  4. Cliquez sur le bouton Variables d'environnement.
  5. Trouvez la variable d'environnement relative à la plate-forme et cliquez sur le bouton Supprimer.

Problèmes fréquents

Problème Solution

Les valeurs hexadécimales sont préfixées par 0x, au lieu du $ attendu

Aucune

Les expressions sont sensibles à la casse.

Vous devez utiliser la même casse que dans le code

L'utilisation du suffixe pour formater une expression évaluée ne fonctionne pas

Aucune

Les chaînes sont entourées de guillemets doubles et non de guillemets simples

Aucune

Logiciel externe

Des problèmes peuvent se produire avec des applications déboguées dans un environnement incluant un sélecteur de clavier tiers comme Yandex Punto Switcher. Si l'application est fermée par Windows, et qu'une violation d'accès est déclenchée par l'application, ignorez cette erreur de violation d'accès.

Outils de traduction

Depuis RAD Studio 10.3 Rio, les outils de traduction disponibles dans le produit ne sont officiellement plus pris en charge, aussi bien pour la VCL (Editeur de traductions intégré) que pour FireMonkey (TLang). Les deux fonctionnalités sont toujours disponibles dans Rio mais il est recommandé de réduire la dépendance de votre projet envers ces outils. RAD Studio travaille en partenariat avec des éditeurs tiers pour proposer des options alternatives.

Voir aussi