Afficher : Object Pascal C++
Préférences d'affichage

Notes de release

De Appmethod Topics

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 Appmethod

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

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

Consultez la version la plus récente du fichier appmethod_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\17.0


Plate-forme d'applications 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 1.17, 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 Mac OS X, cliquer sur les liens n'a aucun effet (l'application ne peut pas ouvrir la page liée).

FireDAC

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

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

Appmethod 1.17 ne fournit pas de fichiers .dcu pré-construits pour les unités Box2D.*.pas.

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

EDI

Options supplémentaires pour BCC32C pour générer un package

Lorsque vous construisez un package contenant un composant que vous voulez recenser dans l'EDI pour une future utilisation, vous devez définir des options supplémentaires pour le compilateur BCC32C, le compilateur C++ amélioré par Clang pour Windows 32 bits.

Sous Projet > Options > Compilateur C++ > Avancées > "Autres options" > "Autres options à transmettre au compilateur ", veuillez ajouter -tP à ce champ.

L'option CodeGuard n'est pas prise en charge par les compilateurs C++ améliorés par Clang

L'option CodeGuard de la fenêtre Projet > Options > Compilateur C++ > Débogage n'est pas prise en charge par les compilateurs Clang.

Si vous basculez un projet sur le compilateur BCC32C amélioré par Clang, vous devez conserver l'option CodeGuard sur false. Pour plus d'informations, voir Options non prises en charge par les compilateurs C++ améliorés par Clang.

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.

Le contenu de l'expert mobile est bloqué sur Windows Server 2008

Dans Windows Server 2008, Windows affiche une boîte de dialogue Internet Explorer (en bloquant le contenu de l'expert Aide mobile) à l'ouverture de l'expert Aide mobile. Vous devez cliquer sur le bouton Ajouter (ajout du contenu de l'expert à la liste blanche d'Internet Explorer) pour être en mesure de voir le contenu de l'expert.

Appmethod affiche l'expert Aide mobile lorsque vous travaillez sur une application mobile et que vous devez suivre des étapes de configuration, ou lorsque vous rencontrez un problème et que vous avez besoin d'aide. (Vous pouvez également sélectionner Aide > Experts d'aide > Expert Aide mobile pour ouvrir l'expert Aide mobile.)

L'expert Aide mobile est documenté ici :

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.

Compatibilité Windows 10

Si vous effectuez une mise à niveau de Windows 7, 8 ou 8.1 vers Windows 10, vous rencontrerez quelques problèmes avec le volet Structure dans Appmethod C++. Ce problème est dû à une installation défectueuse de Microsoft Visual J# Version 2.0 (EN) dans le système Windows.

La solution consiste à réinstaller Microsoft Visual J# Version 2.0 (EN). Suivez ces étapes :

  1. Désinstallez Microsoft Visual J# Version 2.0 (EN). Ce processus aboutit à une erreur qui est attendue.
  2. Recherchez le registre et supprimez toutes les entrées associées à J#.
  3. Redémarrez le périphérique.
  4. Installez Microsoft Visual J# Version 2.0 (EN).
  5. Redémarrez le périphérique.

Pour plus d'informations, voir le forum de Microsoft Community : Microsoft Community - Can not install Microsoft Visual J#® 2.0 on Windows 10 (not compatible) (EN)

Modifications relatives au fichier AndroidManifest.template.xml

Les projets issus d'autres versions ciblant Android doivent recréer le fichier AndroidManifest.template.xml afin d'éviter des comportements incorrects en raison des modifications apportées au fichier AndroidManifest.template.xml.

Pour conserver les changements d'une version antérieure de AndroidManifest.template.xml, modifiez le nouveau fichier en y incluant vos modifications précédentes.

Voir les étapes à suivre dans la section : Recréation du fichier AndroidManifest.template.xml.

Configuration de construction pour les services Android

Si vous déployez une application de service Android en sélectionnant une configuration de construction différente de celle sélectionnée lorsque le service Android a été ajouté à l'application hôte, certains fichiers ne sont pas ajoutés au Gestionnaire de déploiement et l'application se bloque à l'exécution.

Pour de plus amples informations sur la résolution du problème, voir Résolution des problèmes des services 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 Appmethod C++, 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 (Object Pascal)).

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é Object Pascal 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));
}

InterBase

InterBase XE7 Edition est fourni avec certaines éditions de Appmethod 1.17

Cette note concerne les utilisateurs ayant installé une version antérieure de Appmethod et Appmethod 1.17 sur la même machine. Dans cette note, la mention de Appmethod inclut implicitement les éditions Object Pascal et Appmethod C++.

Chaque version de Appmethod inclut une licence pour une version d'InterBase :

Produit Version d'InterBase
Appmethod InterBase XE3 Developer Edition
Appmethod InterBase XE3 Developer Edition
Appmethod 1.13 InterBase XE3 Developer Edition
Appmethod 1.14 InterBase XE3 Developer Edition
Appmethod 1.15 InterBase XE3 Developer Edition
Appmethod 1.16 InterBase XE7
Appmethod 1.17 InterBase XE7

Etant donné que toutes ces licences de Appmethod 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 Appmethod 1.14, vous ne pouvez pas démarrer une instance simultanée de "InterBase XE3 Developer Edition" livrée avec Appmethod 1.15. Vous ne pouvez pas non plus démarrer une instance simultanée de l'édition InterBase XE7 livrée avec Appmethod 1.17. 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 Appmethod susmentionnées, et les applications construites par ces versions, peuvent aussi fonctionner avec la version mise à jour d'InterBase XE7 installée avec Appmethod 1.17. 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 Appmethod, 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\17.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.

Aide

Par défaut, les fichiers d'aide sont installés dans :

C:\Program Files (x86)\Embarcadero\Studio\17.0\Help\Doc

Voir aussi

Outils personnels
Autres langues