Le correctif est disponible via GetIt.
Ce correctif aborde un certain nombre de problèmes dans RAD Studio 10.4, concernant le compilateur Delphi, l'IDE RAD Studio en général et le nouveau Code Insight basé sur LSP en particulier, ainsi que les exceptions Android C++ Builder et certains problèmes liés au débogueur.
L'installation de ce correctif nécessite l'installation préalable du correctif #1 (disponible séparément sur GetIt et dans le portail de téléchargement). L'installation de ce correctif est recommandée pour tous les clients RAD Studio 10.4. Notez que le téléchargement de ce correctif est assez volumineux (environ 190 Mo).
Le correctif comprend des instructions d'installation détaillées dans le fichier Readme. Veuillez lire attentivement les étapes (ou les étapes correspondantes dans ce billet de blog), car le téléchargement de GetIt n'installe pas le correctif automatiquement. Vous devez suivre les instructions pour l'installer. Il ne suffit pas d'utiliser GetIt.
Comment télécharger le Patch 2
Nous vous recommandons d'utiliser GetIt dans l'IDE RAD Studio pour télécharger le correctif. Le correctif devrait être listé sur la page d'accueil de l'IDE, et disponible dans la section "Patches and Hotfixes" du gestionnaire de paquets GetIt, comme illustré ici :

Il y a plus d'un patch, en fonction de votre édition. Vous ne devriez en voir qu'un seul (Professional ou Enteprise et pour différentes personnalités), installez-le.
Remarque : L'installation du patch #2 via GetIt dans l'IDE nécessite une connexion internet. Si vous avez installé RAD Studio via l'installateur hors ligne (ISO), vous devrez peut-être également lancer la commande GetItCmd.exe -c=useonline (à moins que vous n'ayez déjà lancé la commande une fois).
Vous pouvez également télécharger le correctif via le nouveau portail de téléchargement, my.embarcadero.com, le copier sur la machine de développement, le décompresser et suivre les mêmes étapes d'installation.
A partir de GetIt, une fois que vous avez sélectionné le Patch #2 et appuyé sur le bouton d'installation, il vous sera demandé d'accepter la licence RAD Studio (sous laquelle il est publié). Acceptez la licence et le téléchargement commence. Cela prendra un certain temps :

Certains clients obtiennent un message d'erreur : Impossible de charger les données du serveur...
La raison en est que GetIt est en mode hors ligne lorsque vous avez utilisé l'ISO.
Vous pouvez revenir au mode en ligne en exécutant la commande getitcmd.exe -c=useonline
Comment installer le Patch 2
Une fois le téléchargement terminé, GetIt ouvrira le fichier readme et le dossier de téléchargement (voir ci-dessous). L'installation du Patch 2 doit être effectuée manuellement, car GetIt ne fait que télécharger le patch, il ne l'installe pas.
L'exécutable du correctif est copié avec un fichier ZIP dans un dossier tel que :
C:\Users||Documents\Embarcadero\Studio\21.0\CatalogRepository\10.4Patch2xx-10\R104_Patch2

Le dossier est ouvert automatiquement par la dernière action GetIt. Maintenant, fermez l'IDE RAD Studio 10.4 (ainsi que toute autre version antérieure de l'IDE RAD Studio qui pourrait être en cours d'exécution) et à partir du dossier mentionné ci-dessus, exécutez le fichier batch patch2.bat.
Note : Les étapes d'installation suivantes peuvent déclencher un avertissement de la part de votre logiciel antivirus.
Le processus nécessite une élévation et se déroule en montrant les étapes et en ajoutant un fichier journal détaillé dans le dossier du référentiel du catalogue :


Comme vous pouvez le voir dans l'image ci-dessus, l'installation affiche quelques avertissements (en fait 2) car elle ajoute des fichiers qui manquaient dans la version 10.4 originale. C'est normal. Les informations affichées à l'écran sont également enregistrées dans un fichier appelé patch.log dans le dossier Catalog Repository du patch.
A la fin du processus, la fenêtre de la ligne de commande se ferme et vous pouvez redémarrer l'IDE RAD Studio 10.4.
Vérification de l'installation correcte
Pour vérifier que le correctif a été installé avec succès, vous pouvez regarder l'horodatage des fichiers remplacés, par exemple getit270.bpl dans le dossier bin devrait avoir un horodatage de juillet 2020 (au lieu de mai 2020 pour la plupart des fichiers).
Étapes de désinstallation
Si vous rencontrez des problèmes avec le patch, vous pouvez le supprimer en fermant RAD Studio, en ouvrant le dossier d'installation Catalog Repository (le même dossier que celui mentionné ci-dessus) et en exécutant patch2uninstall.bat. Cela restaurera les fichiers de sauvegarde de la version originale.
Le processus de correction crée une sauvegarde des fichiers remplacés dans un sous-dossier _patch_backup du dossier d'installation principal de RAD Studio. Pour chaque exécution, il crée un sous-dossier avec l'horodatage de l'installation, qui comprend également un fichier install.log. Comme alternative à la désinstallation du patch, vous pouvez copier manuellement les fichiers de ce dossier de sauvegarde dans le dossier principal de BDS.
Ce n'est qu'après avoir désinstallé le correctif que vous pouvez désinstaller le paquet de GetIt. Si vous désinstallez d'abord le paquet à partir de GetIt, le téléchargement et le script de désinstallation seront supprimés, mais pas le correctif installé. Dans ce cas, vous pouvez restaurer manuellement les fichiers à partir du dossier de sauvegarde comme indiqué ci-dessus ou télécharger à nouveau le correctif et exécuter le fichier batch de désinstallation.
Liste des problèmes signalés par les clients et traités dans le patch 2 de la version 10.4
RAD Studio 10.4 Patch #2 corrige les problèmes suivants signalés par les clients sur le portail de qualité de Embarcadero (https://quality.embarcadero.com):
RSP-29628 Bug des grilles VCL
RSP-29560 [REGRESSION] Désalignement dans TStringGrid, méthode StretchDraw dans OnDrawCell
RSP-29412 Le compilateur génère un code incorrect pour le if-then
RSP-29402 Delphi 10.4 Bug de TStringGrid.OnDrawCell
RSP-29374 Mauvaises coordonnées du rectangle dans TStringGridDrawCell, ce qui fait que l'image est dessinée à une mauvaise position.
RSP-29347 [DelphiLSP] L'IDE se bloque lorsque l'option "view form as text" est sélectionnée et que le serveur LSP est en cours d'exécution.
RSP-29310 Erreur interne L891 lors de l'établissement d'un lien en raison de types complexes basés sur des enregistrements avec la classe var
RSP-29299 CODEGEN bogue dans l'initialisation des champs gérés, associé aux nouveaux opérateurs de gestion.
RSP-29271 [DelphiLSP] Code Insight ajoute des () inutiles lors du changement de procédures/fonctions.
RSP-29256 Le compilateur génère un code erroné pour une fonction template
RSP-29227 Valeur de propriété incorrecte obtenue à partir de l'enregistrement
RSP-29226 Violation d'accès avec un code de travail sous 10.2
RSP-29218 compilation de la bibliothèque statique sous Android erreur E4620 traitement de la ressource .fmx -2 soulevée
RSP-29172 Violation d'accès lors de l'ouverture du gestionnaire de licences
RSP-29142 Les déclarations GoTo ne fonctionnent pas
RSP-29136 Le dialogue s'affiche constamment pendant le débogage
RSP-29129 L'application iOS se bloque simplement avec un TWebBrowser.
RSP-29127 Erreur interne du compilateur si vous ignorez le résultat d'une fonction qui renvoie un enregistrement générique
RSP-29124 ICE E1812
RSP-28989 Le gestionnaire de licences affiche une erreur de violation d'accès lorsque je clique sur Workstation Licenses.
RSP-28887 L'espace ne termine pas l'achèvement du code
RSP-28857 Default(T) génère un mauvais code pour l'enregistrement géré
RSP-28821 [Régression] Le paramètre Rect de TStringGrid.OnDrawCell contient des valeurs erronées.
RSP-28808 La page de dialogue des options du projet "Delphi Compiler" n'est pas renseignée à l'ouverture du dialogue.
RSP-28796 RVO pour les enregistrements M : initialisation des variables locales
RSP-28761 [REGRESSION] E2154 Le type 'T' doit être finalisé - non autorisé dans l'enregistrement de la variante
RSP-28737 Erreur de compilation lors de l'intégration de nouvelles fonctions de comptage de bits Standard
RSP-28735 Enregistrements gérés provoquant une erreur interne du compilateur
Le paquet RSP-28717 Delphi ne se compile pas
RSP-28701 Bind visuellement sur TDBGRID tue l'IDE
RSP-28669 [BadCG] Paramètres de valeur de l'enregistrement M : AddRefRecord incorrect
RSP-28659 RVO pour les enregistrements M : affectation à des variables locales
RSP-28616 [BadCG] Operator Assign ne devrait pas autoriser les conventions d'appel autres que celles par défaut.
RSP-28615 [BadCG] En l'absence d'Initialize, la finalisation n'est pas garantie pour les variables locales
RSP-28552 Mauvaise génération de code pour les variables d'enregistrement gérées localement
RSP-28499 Options - Outils de traduction - Police - Corrompue ?
RSP-28476 LSP ErrorInsight dans le volet Structure n'affiche qu'une frappe après l'éditeur.
RSP-28400 [BadCG] L'affectation de l'opérateur n'est pas toujours invoquée pour les champs
RSP-28372 [Régression] Mauvais codegen dans une fonction renvoyant un type générique
RSP-27268 C++ Builder 10.3.3 Exceptions Android
RSP-27251 Erreur interne lors d'une tentative de mise en ligne avec une optimisation sur
RSP-24079 La version du paquet n'est pas correcte
RSP-23403 Erreur de compilation pour linux 64
RSP-23024 Le constructeur d'une classe d'aide à l'enregistrement donne un avertissement insensé au compilateur
RSP-22318 La vérification du type de pointeur n'est pas effectuée lorsque le champ de l'objet est un tableau dynamique.
RSP-21554 Le compilateur génère un code incorrect pour un type d'enregistrement paramétré
RSP-21248 Le tableau dynamique Const contient de manière inattendue des données non initialisées
RSP-20372 Une "référence à une fonction" générique ne correspondra qu'à la première de plusieurs fonctions surchargées.
RSP-19714 Compilateur Win32 - Corruption de mémoire avec les aides de tableau
RSP-18241 Les fichiers sources *.c, ajoutés au projet C++, ont été ajoutés à la liste des fichiers de DeploymentManager.
RSP-18148 AV dans TList.Remove (compilateur 64 bits uniquement)
