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

Notes de release

De RAD Studio

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. Pour obtenir la version à jour de ces notes, voir Notes de release.

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 :

  • 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\19.0

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 Tokyo.

  • Delphi Tokyo inclut les licences pour Delphi Seattle, XE8, XE7, XE6, XE5, XE4, XE3, XE2, XE, 2010, 2009, 2007 et 7.
  • C++Builder Tokyo inclut les licences pour C++Builder 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.

L'ouverture des projets entraîne leur mise à niveau

Lorsque vous ouvrez un projet avec RAD Studio Tokyo, un projet ayant été créé avec une version antérieure de RAD Studio, RAD Studio procède à la mise à niveau du projet. Une fois mis à niveau, ces projets ne fonctionnent plus avec les versions antérieures de RAD Studio.

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

Mise à niveau à partir de Delphi 7

Si vous effectuez la mise à niveau d'un projet créé dans Delphi 7 ou dans une release antérieure, et que le projet contient une extension de fichier personnalisée, vous devez choisir Projet > Options > Application et définir l'extension du fichier cible afin qu'elle corresponde au type de votre projet (.exe, .dll ou .bpl).

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 Tokyo, vous pouvez rencontrer le message 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.

Les apps iOS peuvent ne pas se fermer ou s'ouvrir correctement si elles ont été exécutées sans débogage sur le périphérique

Si vous exécutez votre app iOS sans débogage préalable, puis que vous détruisez le processus de votre application, vous devrez exécuter la commande de réinitialisation de PAServer pour exécuter le processus à l'extérieur de l'EDI ; tapez 'r' à l'invite de commande de PAServer.

Le navigateur Web peut ne pas prendre en charge certains comportements de liens sur diverses plates-formes

Sur une page Web affichée avec TWebBrowser, lorsque vous cliquez sur un lien hypertexte alors que la propriété Target est définie sur "_blank" ou "_search", vous pouvez rencontrer les problèmes suivants :

  • Sur les plates-formes Android et iOS, l'application ouvre une page liée dans la même fenêtre TWebBrowser.
  • Sur les plates-formes Win32 et Win64, l'application ouvre une page liée dans une nouvelle fenêtre Internet Explorer.
  • Sur la plate-forme OS X, cliquer sur les liens n'a aucun effet (l'application ne peut pas ouvrir la page liée).

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++.

Solution en cas d'erreurs de fichier INI avec FireDAC

Dans les versions précédentes, FireDAC créait des fichiers INI dans "C:\Program Files" qui, dans les versions modernes de Windows, n'est accessible qu'en lecture aux utilisateurs standard de Windows. Si vous obtenez des erreurs de type "Impossible de modifier le fichier" lorsque vous ajoutez de nouvelles définitions de connexion FireDAC en utilisant l'explorateur de données ou FDExplorer, il se peut que les fichiers INI FireDAC soient toujours situés dans "C:\Program Files". Pour résoudre le problème, nous vous conseillons de télécharger et d'exécuter l'utilitaire FDFixIni, qui déplace les fichiers INI FireDAC vers un emplacement correct et met à jour le registre FireDAC. Par défaut, l'emplacement correct est "C:\Documents and Settings\All Users\Documents\Embarcadero\Studio\FireDAC".

Pour résoudre le problème :

  • Téléchargez FDFixIni à partir du site des utilisateurs enregistrés : http://cc.embarcadero.com/item/29812 (EN) ;
  • Effectuez l'extraction du fichier .EXE à partir de l'archive téléchargée ;
  • Et exécutez-le. Si l'utilitaire s'est exécuté avec succès, il génère deux lignes avec Move [ancien emplacement] to [nouvel emplacement].

Box2D

RAD Studio Tokyo ne fournit pas de fichiers .dcu pré-construits pour les unités Box2D.*.pas.

  • Pour les projets Delphi utilisant les unités Box2D.*.pas, sélectionnez Projet > Options > Compilateur Delphi et mettez à jour le chemin de recherche conformément à include ${BDS)\source\FlatBox2D.
  • Pour plus d'informations sur l'utilisation de Box2D, voir Box2D.

Android

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.

Chaînes d'outils C++

Résolution des déclarations multiples pour DWORD ou ULONG dans les applications OS X

Dans une application multi-périphérique compilée pour la plate-forme cible OS X, E2238 peut se produire car les en-têtes OS X iodbcunix.h et sqltypes.h déclarent des instructions typedef pour DWORD et ULONG, alors que le fichier sysmac.h de C++Builder, qui est inclus par System.hpp, fournit des instructions typedef similaires. Voir E2238 pour trouver une solution.

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).

Les événements avec des structures ou des ensembles de 5 à 8 octets ne sont pas valides pour BCC64

Les événements générés par l'EDI qui acceptent une structure ou un ensemble faisant entre 5 et 8 octets sont valides pour C++ 32 bits mais ne le sont pas pour C++ 64 bits. Cela affecte uniquement les situations où le type est transmis par valeur. Pour les situations où le type est transmis par référence, il n'y a pas de différence entre Win32 et Win64.

Par exemple, une violation d'accès se produit lors de l'accès au paramètre TPoint &MousePos de l'événement OnContextPopup, car le paramètre TPoint &MousePos est incorrect sur la plate-forme Win64. Si vous examinez la déclaration de type __closure, vous pouvez voir les différences entre Win32 et Win64. Voici la déclaration __closure pour l'événement PopupMenu de TControl :

#ifndef _WIN64
typedef void __fastcall (__closure *TContextPopupEvent)(System::TObject* Sender, const System::Types::TPoint &MousePos, bool &Handled);
#else /* _WIN64 */
typedef void __fastcall (__closure *TContextPopupEvent)(System::TObject* Sender, System::Types::TPoint MousePos, bool &Handled);
#endif /* _WIN64 */

Pour que le code fonctionne aussi bien sur Win64 que sur Win32, vous devez coder en #ifdef le gestionnaire généré par l'EDI comme suit :

#ifndef _WIN64
void __fastcall TForm46::FormContextPopup(TObject *Sender, TPoint &MousePos, bool &Handled)
#else
void __fastcall TForm46::FormContextPopup(TObject *Sender, TPoint MousePos, bool &Handled)
#endif
{
  ShowMessage(System::String().sprintf(L"Mouse at (%d,%d)", MousePos.X, MousePos.Y));
}

EDI

Dans le Concepteur de fiches multi-périphérique, la suppression d'un composant ne peut s'effectuer qu'à partir de la vue maître

Lorsque vous essayez de supprimer un composant, tel que le composant TButton, à partir d'une autre vue (pas la vue maître), le message d'erreur suivant apparaît :

 Selection contains a component, Button1, introduced in an ancestor and cannot be deleted

La solution consiste à supprimer le composant de la vue maître. Pour plus d'informations sur les vues, voir Concepteur de fiches.

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 XE7 Edition est fourni avec certaines éditions de RAD Studio Tokyo

Cette note concerne les utilisateurs ayant installé une version antérieure de RAD Studio et RAD Studio Tokyo 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 Seattle InterBase XE7
RAD Studio Berlin InterBase XE7

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 XE7 livrée avec RAD Studio Tokyo. 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 http://docs.embarcadero.com/products/interbase/IBXE7/OpGuide.pdf (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 antérieures de RAD Studio susmentionnées, et les applications construites par ces versions, peuvent aussi fonctionner avec la version mise à jour d'InterBase XE7 installée avec RAD Studio Tokyo. 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\19.0\InterBaseXE7

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.

Voir aussi

Outils personnels
Autres langues
Versions précédentes