Nouveautés de Delphi et C++Builder 2009
Remonter à Nouveautés des releases précédentes
Cette release contient de nombreuses fonctionnalités nouvelles et importantes pour le développement d'applications utilisant à la fois Delphi et C++Builder.
Notez que cette release est une modification importante de Delphi et C++Builder. La fonctionnalité principale de cette release est le changement de l'utilisation des chaînes ANSI en utilisation d'un type de chaîne basé sur Unicode, nommé de façon appropriée UnicodeString. Afin que Delphi ou C++Builder 2009 fonctionne sur les applications pré-existantes, vous devrez effectuer quelques modifications dans votre code, principalement associées à la gestion des chaînes, et vous devrez recompiler avec succès votre code.
A propos d'Unicode : Le standard Unicode a été adopté par de nombreux leaders de l'industrie informatique, incluant maintenant CodeGear. Unicode fournit un nombre unique pour chaque glyphe, quel que soit la plate-forme, le programme ou le langage utilisé. Selon le consortium Unicode (http://www.unicode.org), Unicode est requis par les standards modernes comme XML, Java, ECMAScript (JavaScript), LDAP, CORBA 3.0, WML, et ainsi de suite, et représente le chemin officiel pour implémenter ISO/IEC 10646. Unicode est pris en charge dans de nombreux systèmes d'exploitation, dans tous les navigateurs modernes et dans beaucoup d'autres produits. La naissance du standard Unicode et la disponibilité des outils le supportant, sont parmi les récentes tendances technologiques logicielles globales les plus significatives.
L'incorporation d'Unicode dans les applications client-serveur ou multiniveau et les sites web offre des gains de coût significatifs par rapport aux anciens jeux de caractères. Unicode permet à un produit logiciel ou à un site web d'être ciblé à travers plusieurs plate-formes, langages et pays sans re-ingénierie. Il permet le transport des données à travers différents systèmes sans corruption.
Unicode partout dans le produit
L'EDI est entièrement compatible Unicode, de haut en bas, de gauche à droite et d'avant en arrière. L'EDI entier est lui-même à présent une application Unicode, nécessitant que tous les composants et le code de conception soit basé sur le type UnicodeString. Les caractères Unicode sont entièrement supportés dans les identificateurs et les chaînes. Pour plus de détails, voir Unicode dans l'EDI.
Il existe quelques exceptions : Vous ne pouvez pas utiliser des caractères Unicode dans les noms de DLL. Quelques utilitaires en ligne de commande, comme MAKE, IMPDEF et IMPLIB, ne peuvent pas gérer les noms de fichiers Unicode.
La modification du type de chaîne par défaut affecte d'autres types de données ainsi que de nombreuses fonctions. Par exemple, SizeOf(Char) est maintenant de 2 octets, pas 1 octet. Les appels à Length(MyString) renvoient le nombre de caractères, pas le nombre d'octets de la chaîne.
Vous pouvez aussi utiliser Unicode dans la console de commandes en définissant les propriétés de fonte et de page de code.
Conversion de vos projets
D'abord et c'est le plus important, afin d'utiliser Delphi ou C++Builder 2009, vous devez effectuer quelques modifications dans votre code existant puis recompiler votre application afin de gérer Unicode, comme décrit dans la rubrique d'aide Activation des applications pour Unicode (Delphi) et Activation des applications C++ pour Unicode.
Sauvegarde de vos projets : Vous ne pouvez pas migrer un projet de la version 2009 vers une version antérieure. Avant d'ouvrir vos projets existants dans Delphi ou C++Builder 2009, effectuez une copie de sauvegarde du projet afin de restaurer le projet en entier en cas de problèmes inattendus.
Le format du fichier projet a changé : Pour Delphi et C++Builder, le format du fichier projet a changé afin de s'adapter aux nouvelles fonctionalités de cette release. Les fichiers projet ont l'extension .dproj, .cbproj ou .bdsproj. Quand vous ouvrez un projet Delphi ou C++ préalablement existant, le compilateur enregistre d'abord une copie de sauvegarde de votre fichier projet avec l'extension .2007.
Le message suivant est affiché pour un projet Delphi (un message similaire apparaît pour un projet C++) :
Le projet <nom_projet> va être mis à niveau. Le projet ne sera plus utilisable par les versions précédentes du produit. Une sauvegarde du projet sera créée.
Nom du projet de sauvegarde : <champ_éditable>
Une case à cocher permet d'empêcher la récurrence du message et de créer en permanence des fichiers de sauvegarde. Le fichier projet est ouvert et enregistré au format MSBuild, puis réouvert dans l'EDI. Sachez que les compilateurs Delphi et C++Builder 2009 ont la version 12.
Modifications du compilateur Delphi
Les modifications suivantes ont été apportées au compilateur Delphi :
- Nouveau type UnicodeString. Ce nouveau type de chaîne UnicodeString est défini dans l'espace de nommage System.
- Génériques. Delphi 2009 ajoute le support des génériques par le compilateur Delphi Win32 natif. Pour obtenir des informations d'introduction, voir la rubrique Présentation des génériques. Pour obtenir des détails sur les génériques, tels qu'ils sont implémentés pour Delphi, voir la rubrique Changements apportés à la grammaire et aux fonctions standard et (PDF) Using New Delphi Coding Styles and Architectures, by Marco Cantu.
- Méthodes anonymes. Une méthode anonyme est une procédure ou une fonction n'ayant pas de nom associé. En outre, une méthode anonyme peut faire référence aux variables et lier des valeurs aux variables dans le contexte dans lequel la méthode a été définie. Elles peuvent être définies et utilisées avec une syntaxe simple. Les méthodes anonymes sont similaires à la construction de closures définis dans d'autres langages. Pour de plus amples informations, voir Méthodes anonymes et Entropy Overload: Barry Kelly's Blog et (PDF) Using New Delphi Coding Styles and Architectures, by Marco Cantu.
- Nouvelle directive du compilateur : $POINTERMATH [ON|OFF]. Cette directive permet les opérations mathématiques sur les pointeurs. Pour plus de détails, voir Directive $POINTERMATH.
- Quatre nouveaux avertissements du compilateur Delphi.Les deux avertissements de transtypage implicites sont particulièrement utiles pour rechercher les zones de problème lors de la conversion de votre code afin d'utiliser UnicodeString. Pour plus de détails, voir W1057: Transtypage de chaîne implicite, W1058: Transtypage de chaîne implicite avec perte de données potentielle, W1059: Transtypage de chaîne explicite, W1060: Transtypage de chaîne explicite avec perte de données potentielle.
- La fonction Exit peut prendre un paramètre spécifiant un résultat. Le paramètre de la fonction System.Exit doit être de même type que le résultat.
Modifications de l'EDI
Les modifications suivantes ont été apportées à l'environnement de développement intégré :
- Nombreuses améliorations de la boîte de dialogue Projet > Options. Les pages de la boîte de dialogue Options de projet relatives au compilateur ont été reconçues afin de placer toutes les options dans une colonne, avec leurs valeurs associées dans une seconde colonne. Cette réorganisation permet d'analyser plus facilement le contenu d'une page et de rechercher plus facilement des options spécifiques. Certains champs de valeurs ont un bouton déroulant (
or
) invoquant un dialogue secondaire, comme le dialogue liste ordonnée générique ou un dialogue standard de recherche d'un dossier.
- Les configurations de construction et les jeux d'options fonctionnent à présent de façon similaire pour Delphi et C++Builder. Les configurations de construction peuvent maintenant hériter de la configuration Base à la fois pour Delphi et C++. Delphi et C++Builder supportent maintenant les jeux d'options nommés (supportés antérieurement uniquement par C++Builder 2007). Vous pouvez attacher les jeux d'options aux configurations de construction par référence ou par valeur (antérieurement supporté seulement par valeur). Par exemple, il existe des options de base distinctes pour les chemins de recherche, les avertissements du compilateur et les optimisations. Pour contrôler la priorité dans lequel ces options distinctes sont appliquées, utilisez la boîte de dialogue Appliquer le jeu d'options. Pour de plus amples informations, voir Présentation des configurations de construction et Présentation des jeux d'options.
- Modifications de la vue Gestionnaire de projets. Utilisez le menu déroulant situé dans la partie supérieure du Gestionnaire de projets pour sélectionner une des trois vues de fichiers :
- Reconception des experts Importer un composant et Nouveau composant VCL. Les experts Importer un composant et Nouveau composant VCL ont été étendus et reconçus afin d'inclure les bibliothèques de types, les contrôles ActiveX et les assemblages. Les deux experts ont les nouvelles options : Installer dans un package existant et Installer dans un nouveau package.
- Modifications de l'éditeur de code. Les fonctionnalités Audit de code ont été mises à jour pour reconnaître et supporter les nouvelles fonctionnalités de langage de C++ et Delphi. La mise en évidence de la syntaxe, l'achèvement de code, l'audit d'aide (Delphi) et l'audit d'erreur (Delphi) devraient fonctionner correctement avec les méthodes anonymes et les génériques de Delphi, ainsi que les nouvelles fonctionnalités de langage C++0x.
- Autres compilateurs de ressources : La boîte de dialogue propose un choix de compilateurs de ressources. Vous pouvez choisir BRCC32.exe ou RC.exe, le compilateur de ressources de la plate-forme Microsoft SDK. RC supporte les caractères Unicode dans les fichiers de ressource et les noms de fichier, ainsi que les nouveaux types de ressource Vista tels que les icônes avec canal alpha. Si vous choisissez RC, vous devez aussi inclure explicitement #include <winresrc.h> pour C++ et Delphi.
- Le nouvel Editeur de ressources est un dialogue qui vous permet d'ajouter des fichiers ressource (divers types de graphiques comme les bitmaps, les icônes et les fontes) à votre projet. Vous pouvez revoir tous les fichiers ressource de votre projet dans l'éditeur de ressources.
- Le nouvel explorateur de classes de Delphi vous permet de visualiser la hiérarchie d'héritage des classes et interfaces de votre projet. La vue Classes et la liste des membres sont les volets principaux de l'explorateur de classes. Les commandes Aller à vous permettent de localiser la déclaration d'une classe, d'une méthode, d'une propriété ou d'un champ sélectionné, de localiser la définition d'une méthode sélectionnée, et de localiser la définition getter ou setter d'une méthode. Vous pouvez ajouter des champs, des propriétés et des méthodes à une classe. Pour plus d'informations, voir Explorateur de classes.
C++Builder 2009
Les fonctionnalités clés suivantes sont nouvelles ou ont été considérablement modifiées :
- Fonctionnalités C++0x : Onze fonctionnalités sélectionnées dans le nouveau standard C++0x ont été implémentées dans C++Builder 2009 :
- Opérateur alignof
- Attributs noreturn et final
- Opérateurs de conversion explicite
- Templates extern
- Déclaration forward des énumérations
- Références rvalue
- Assertions statiques
- Enumérations fortement typées
- Spécificateur de type decltype
- Fonctions trait de type
- Types de caractères Unicode (char16_t et char32_t)
- La nouvelle classe UnicodeString est basée sur AnsiString. Voir l'aide relative à UnicodeString.
- L'option Mappage de _TCHAR en contrôle la définition flottante de _TCHAR. Les choix sont wchar_t et char. La sélection de wchar_t configure les définitions UNICODE et _UNICODE. Avant de définir cette option sur wchar_t, votre projet doit avoir un point d'entrée appelé "_tmain" ou "_tWinMain". Les nouveaux projets (créés avec C++Builder 2009) ont ces points d'entrée par défaut, mais les projets importés nécessitent typiquement l'ajout manuel de ces points d'entrée. Pour de plus amples informations, voir l'aide relative à . Voir aussi Mappage TCHAR.
- Emulation des méthodes des classes Delphi : Auparavant, les méthodes des classes Delphi étaient émulées dans C++ par des fonctions statiques en utilisant un paramètre métaclasse explicite. Le nouveau mot clé d'extension de langage __classmethod peut maintenant être utilisé pour émuler les méthodes de classes Delphi. Une méthode de classe est appelable sur le type, ainsi que sur les objets de ce type. Voir Méthodes de classe dans C++.
- Améliorations de la gestion des exceptions : Vous pouvez à présent désactiver une optimisation en toute confiance car la gestion des exceptions a été améliorée dans C++Builder 2009.
- Bibliothèques Boost disponibles : Boost est une bibliothèque pour C++ qui étend de manière significative le langage en utilisant une métaprogrammation de templates. Un sous-ensemble de Boost 1.35 a été inclus et a été complètement testé et préconfiguré spécifiquement pour C++ Builder 2009. Des binaires ont déjà été construits pour les fonctions qui les requièrent. Des chemins d'inclusion ont été définis pour les bibliothèques Boost, et toutes les bibliothèques nécessaires doivent être automatiquement liées à cause des lignes de lien #pragma dans le code Boost. Par exemple, pour utiliser la bibliothèque Boost minmax, votre code doit spécifier :
#include <boost/algorithm/minmax.hpp>
Pour visualiser l'aide des bibliothèques Boost, voir http://www.boost.org/doc/libs/1_35_0/libs/libraries.htm.
- Substantypage de noms mis à jour : Le substantypage de noms et le schéma de hachage ont été révisés afin que les noms réussissent à la place des conflits antérieurs (et par conséquent les échecs). Vous pouvez parfois voir un nom substantypé se terminant par des points de suspension (...). Cela se produit quand un nom substantypé est trop long pour être représenté dans la limite OMF de 255 caractères et est ainsi tronqué. De plus, des noms substantypés très longs peuvent être tronqués quand ils sont imprimés par le lieur et d'autres outils. Cela survient quand un nom substantypé est décodé à partir d'un nom substantypé qui était tronqué.
- Gestion des nouvelles fonctionnalités de Delphi : Les méthodes anonymes de Delphi, les génériques et les AnsiString spécifiés avec une page de code peuvent être à l'origine de problèmes de programmation potentiels que vous pouvez rencontrer dans C++. Voir Gestion des fonctionnalités Delphi dans C++Builder 2009.
- Désactivation du chemin de recherche des bibliothèques pour les fichiers ajoutés : Par défaut, le lieur recherche les bibliothèques et les fichiers objet que vous ajoutez à votre projet C++ à l'aide du chemin de recherche des bibliothèques afin de localiser les bibliothèques ou les fichiers objet. Le chemin de recherche des bibliothèques est défini sur la boîte de dialogue . Pour lier un fichier objet ou bibliothèque explicitement par chemin, cliquez avec le bouton droit sur le fichier dans le gestionnaire de projets et décochez Lien par nom seulement. Le lieur reçoit alors le nom de chemin entièrement qualifié du fichier objet ou bibliothèque et ignore le chemin de recherche des bibliothèques.
- La génération HPP par le compilateur Delphi a changé. Les classes sealed et les redéfinitions finales de Delphi sont maintenant toutes les deux mappées sur l'attribut final dans C++.
- Support des nouveaux mots clés : Plusieurs types de nouveaux mots clés ont été ajoutés à C++Builder 2009 :
- Six nouveaux mots clés sont supportés dans le mode par défaut : alignof, char16_t, char32_t, decltype, static_assert et __classmethod.
- Neuf nouveaux mots réservés sont supportés avec le commutateur —Ax défini : alignas, constrexpr, nullptr, concept, concept_map, axiom, late_check, requires, thread_local.
- Onze représentations alternatives d'opérateurs et de séparateurs sont supportés : and, and_eq, bitand, bit_or, compl, not, not_eq, or, or_eq ,xor, xor_eq.
- Quatre nouveaux mots réservés C99 sont supportés avec le commutateur —An défini : _Bool, _Complex, _Imaginary, restrict.
Modifications de la modélisation pour C++
C++Builder incluait auparavant la visualisation du code dans un visualiseur de diagramme de classes UML unidirectionnel. C++Builder inclut à présent le code dynamique et la modélisation UML bidirectionnelle dans le diagramme de classes. Cela signifie que vous pouvez travailler dans le code source, travailler dans le modèle UML et aller de l'un à l'autre avec une synchronisation dynamique complète - "le code est le modèle, le modèle est le code".
C++Builder inclut le support des diagrammes de classes, de cas d'utilisation, de séquence, de collaboration, de composants, de déploiement, d'états et d'activités.
Le support de la modélisation C++Builder inclut également le support des patterns de conception, y compris "créer par pattern" dans vos modèles avec le pattern "enregistrer comme pattern". C++Builder supporte les patterns de conception Gang of Four incluant les groupes de patterns Comportementaux, De création et Structurels.
Lorsque vous voulez générer la documentation HTML de votre projet, vous pouvez cliquer avec le bouton droit sur un diagramme, sélectionner l'élément de menu déroulant Générer la documentation et choisir de générer des diagrammes, une arborescence de navigation JavaScript et des interfaces pour l'espace de nommage en cours, l'espace de nommage avec des espaces de nommage descendants, le diagramme en cours ou tous les diagrammes.
Modifications COM
Les experts COM ont été réorganisés et améliorés pour Delphi et C++Builder 2009 et un nouvel expert COM a été ajouté (Contrôle ActiveX). Les experts sont disponibles dans les dossiers ActiveX et multiniveau de la boîte de dialogue Nouveaux éléments. Les experts COM sont les suivants : Objet COM, Objet Automation, Fiche active, Objet Active Server, Module de données distant, Evénement Com +, Abonnement COM +, Page Propriétés, Contrôle ActiveX, Objet transactionnel, Module de données transactionnel, Bibliothèque de types, Bibliothèque ActiveX. Les experts Bibliothèque ActiveX et Bibliothèque de types sont tous deux des experts de niveau projet, et ils sont ainsi disponibles à partir de la galerie uniquement en l'absence de projet actif. Tous les autres experts COM sont seulement disponibles en présence d'un projet valide ouvert pour les contenir. Voir Utilisation des experts COM.
Un nouveau type de fichier a été ajouté à l'architecture COM – le fichier textuel RIDL (Restricted Interface Definition Language). Le fichier RIDL est le mécanisme de stockage que le projet utilise pour rendre persistantes les données de bibliothèque de types sur disque. Le fichier .tlb binaire est maintenant un fichier intermédiaire (comme .res, .dcu, .obj, et ainsi de suite). Cela signifie que vous pouvez reconstruire le fichier .tlb à partir de la ligne de commande (en dehors de l'EDI), que vous pouvez modifier les fichiers .tlb avec un éditeur de texte, et que l'historique est stocké par l'EDI. Voir Enregistrement et recensement des bibliothèques de types.
L'éditeur de la bibliothèque de types fonctionne à présent sur un fichier .text (le fichier .RIDL) au lieu du fichier binaire .tlb. Le fichier .text est compilé en utilisant le nouveau générateur de bibliothèque de types, GenTLB.exe, pour générer le fichier binaire .TLB. Cette modification signifie que :
- Vous n'avez plus à archiver le fichier binaire .tlb, car le système de construction peut le générer à partir du dernier fichier .ridl.
- Plusieurs programmeurs peuvent travailler simultanément sur la bibliothèque de types, puis fusionner simplement leurs modifications dans le fichier texte RIDL. Les fichiers binaires ne peuvent pas être fusionnés, nécessitant que la dernière personne écrase toujours les modifications précédentes.
- Le format RIDL offre davantage de souplesse à certaines constructions que l'éditeur de bibliothèque de types. Par exemple, avec un fichier RIDL vous pouvez ajouter et modifier des données personnalisées sur n'importe quel type, fonction ou membre. Vous pouvez décrire des types complexes, comme les tableaux sécurisés de tableaux sécurisés.
- Vous pouvez facilement évaluer les différences entre des fichiers RIDL et avoir une idée de l'évolution du modèle exposé par un serveur dans le temps.
La fenêtre de l'éditeur de bibliothèque de types a maintenant trois nouveaux onglets situés sur le bord inférieur de la fenêtre :
- La page Code affiche le code RIDL.
- La page Conception est l'éditeur de bibliothèque de types affichant les champs du fichier RIDL.
- La page Historique est le gestionnaire de l'historique.
Actualiser fonctionne à présent différemment pour l'éditeur de bibliothèque de types. Vous pouvez cliquer sur le bouton Actualiser de la page Conception pour que vos sources Delphi ou C++ soient mis à jour quand vous modifiez votre bibliothèque de types. L'EDI effectuera également une actualisation automatique sur les événements suivants :
- Quand vous basculez entre les onglets Code et Conception.
- Quand vous construisez le projet.
Utilisez l'explorateur de la bibliothèque de types pour une visualisation en lecture seule des fichiers .tlb au format binaire. Choisissez et sélectionnez un fichier .tlb.
Débogueur
Les fonctionnalités clés suivantes sont nouvelles ou ont été considérablement modifiées :
- Vue Threads et Parcours de la chaîne d'attente (Windows Vista seulement) : Une fonctionnalité Parcours de la chaîne d'attente a été ajoutée pour vous aider à résoudre les verrous mortels et les conflits de thread. La fonctionnalité exploite la possibilité du système d'exploitation Windows Vista de fournir des informations au débogueur à propos du statut d'attente des threads de votre application sous la forme d'une chaîne d'attente. Une chaîne d'attente est une séquence alternée de threads et d'objets de synchronisation. Chaque thread attend l'objet qui le suit, et cet objet est possédé par le prochain thread dans la chaîne. Dans la vue Threads, une nouvelle colonne ("Chaîne d'attente") liste le contenu de la chaîne d'attente. N'oubliez pas que les objets de synchronisation ne sont pas tous supportés, cette information vous permet de déterminer l'objet qu'un thread bloqué attend. En outre, la vue signale quand un verrou mortel est détecté, une situation dans laquelle un cycle de dépendances empêche l'exécution de tous les threads de l'application.
- Arrêt sur l'exception Abort. La bibliothèque d'exécution C/C++ a été modifiée afin qu'une exception soit déclenchée (avec le code d'exception 0x40000015) quand une application s'exécutant sous le débogeur appelle abort(). Conjointement à cela, un nouveau type Exception native du SE "Exception Abort C/C++" apparaît dans la liste des exceptions spécifiées sur . Par défaut, le débogueur vous notifie quand cette exception survient. Comme avec toute notification d'exception à partir du débogueur, vous avez la possibilité de faire un arrêt dans le débogueur quand cela survient ou de continuer l'exécution du programme. Vous pouvez indiquer au débogueur de ne pas donner de notification en modifiant le paramètre Gérées par pour cette exception de Débogueur en Programme utilisateur.
- Vous devez réactiver les points d'arrêt données pour chaque session de débogage. Les points d'arrêt données sont automatiquement désactivés quand une session de débogage se termine, car l'adresse d'une variable peut changer d'une session de débogage à la suivante. Pour réutiliser un point d'arrêt données durant une session de débogage suivante, vous devez réactiver le point d'arrêt données après le démarrage de votre session de débogage.
Base de données
Plusieurs modifications ont été apportées dans pour améliorer le support du développement d'applications de bases de données.
dbExpress
Le support Unicode a été ajouté aux pilotes Oracle, Interbase et MySQL dbExpress.
Les modifications suivantes ont été apportées au framework de pilote dbExpress :
- Les classes d'extension ajoutées par la version précédente du produit ont été retirées et leur contenu déplacé dans la classe de base. Par exemple, la classe TDBXConnectionEx a été retirée et ses méthodes et propriétés ont été déplacées dans la classe TDBXConnection.
- Les types des paramètres de nombreuses méthodes ont été changés de WideString au nouveau type UnicodeString.
- Pour TDBXValue et TDBXWritableValue, les méthodes GetAs... et SetAs... ont maintenant été ajoutées pour contraindre le type de données, qui peut être utilisé par les classes héritant d'eux. TDBXValue et TDBXWritableValue ont également les nouvelles propriétés As... pour la coercition de type, comme AsBcd.
- Si la métadonnée de paramètre est supportée dans une base de données, l'exécution de la méthode DBXCommon.TDBXCommand.Prepare provoque le remplissage automatique de la liste de paramètres DBXCommon.TDBXCommand avec des paramètres de la commande.
DataSnap
DataSnap est une architecture multiniveau pour les applications de base de données. DataSnap fournit un serveur d'application multiniveau qui contient et gère les modules de données distants. DataSnap a été amélioré pour fournir un mécanisme de connexion très général entre les composants de niveaux différents.
La nouvelle classe DSServer.TDSServer gère la création et la durée de vie des transports et des classes de méthode serveur. Vous pouvez utiliser DSServer.TDSServer pour créer votre propre serveur à niveau intermédiaire. Le nouveau composant DSServer.TDSServerClass peut être utilisé pour spécifier une classe côté serveur d'application avec des méthodes publiées pouvant être appelées à partir d'un client distant utilisant l'invocation de méthode dynamique. Les méthodes de cette classe peuvent être appelées à partir de clients distants, comme le fournisseur client DBX ou le fournisseur ADO.NET.
Lorsque vous avez établi la connexion à un serveur DataSnap, vous pouvez appeler les méthodes d'un serveur d'application de la même façon que les procédures stockées. Par exemple, vous pouvez utiliser la nouvelle classe SqlExpr.TSqlServerMethod pour appeler les méthodes serveur en spécifiant une classe texte et un nom de méthode pour le texte de commande et les paramètres de la méthode. Les méthodes serveur peuvent utiliser un DBXCommon.TDBXReader pour recevoir et renvoyer des ensembles de données vers et depuis le client.
Les nouvelles tables smart sont une abstraction des différents ensembles de données que Datasnap supporte, de telle sorte qu'elles peuvent être passées de façon transparente entre le client et le serveur.
Vous pouvez toujours écrire des classes côté serveur d'application qui étendent DataBkr.TRemoteDataModule, afin que les fournisseurs qu'elles contiennent soient accessibles par le nouveau composant client DSConnect.TDSProviderConnection côté client. DSConnect.TDSProviderConnection fournit la connectivité à un serveur DataSnap en utilisant dbExpress et elle est fournie pour la compatibilité des applications existantes et pour profiter des nouvelles fonctionnalités de DataSnap. Les nouvelles applications n'ont pas besoin d'utiliser DataBkr.TRemoteDataModule ou DSConnect.TDSProviderConnection avec DataSnap.
Les serveurs d'application n'ont pas du tout besoin d'être connectés aux bases de données. Une classe de méthodes serveur a seulement deux exigences :
- La classe doit être un descendant de TPersistent.
- La directive MethodInfo doit être activée.
Pour plus d'informations sur DataSnap, voir http://blogs.codegear.com/steveshaughnessy/2008/07/20/38912.
Obtention de licences BlackfishSQL : La façon d'obtenir des licences de déploiement pour Blackfish SQL a changé. Vous n'utilisez plus le fichier .slip qui était auparavant inclus avec le produit. Vous pouvez désormais générer en ligne un fichier licence de déploiement à l'adresse http://reg.codegear.com. Pour plus d'informations sur l'installation, le déploiement et les licences, consultez les fichiers Install, Deploy et License situés, par défaut, dans C:\Program Files\CodeGear\RAD Studio\6.0.
VCL et RTL
Pour une présentation des améliorations VCL, voir (PDF) Building User Interfaces with Delphi 2009, by Marco Cantu.
API protégée maintenant dans l'aide : Les propriétés et les méthodes protégées (procédures et fonctions) sont à présent incluses dans les rubriques d'aide de l'API.
Voir un aperçu des composants VCL dans CDN : Pour un résumé illustré des nouveaux composants et des composants améliorés de cette release, voir l'article http://dn.codegear.com/article/38349 de Anders Ohlsson.
Voir "Some of the New VCL/RTL Features to Support Unicode" : Cet article CDN est la partie II de "Nick Hodges' series about Delphi in a Unicode World". Il décrit les points fondamentaux de l'API pour Unicode, comme Character et TEncoding : http://dn.codegear.com/article/38498.
Compatibilité Microsoft Windows : Certains composants, classes, méthodes et propriétés sont compatibles avec l'apparence du système d'exploitation Windows Vista. Pour obtenir la liste des contrôles disponibles sur Vista, voir Composants disponibles seulement sur un système d'exploitation spécifique.
VCLJPG vers VCLIMG : Le package vcljpg a été retiré et son contenu se trouve maintenant dans vclimg. Mettez à jour les projets utilisant vcljpg afin qu'ils utilisent à la place le package vclimg.
Changements de TDataSet dans la gestion des signets : DB.TDataSet comprend des changements significatifs dans sa gestion des signets :
- Le type TBookmarkStr a été déprécié.
- La définition du type TBookmark est passée de Pointer à TBytes, ce qui signifie qu'elle utilise maintenant un compteur de références et une gestion du cycle de vie.
- La propriété TDataSet.Bookmark renvoie maintenant un TBookmark au lieu d'un TBookmarkStr.
- Toute utilisation de TBookmarkStr ou Pointer dans le code utilisateur doit changer en TBookmark.
- Le code suivant génère un accès non valide à la mémoire libérée sur la ligne GotoBookmark, car aucune référence TBookmark valide n'a été effectuée :
var Bookmark: Pointer; begin Bookmark := MyDataSet.GetBookmark; ... MyDataSet.GotoBookmark(Bookmark);
Nouvelles classes/nouveaux composants VCL et RTL
- TButtonedEdit et TCategoryPanel (TPanel avec un en-tête pour replier et développer le panneau) ont été ajoutés à l'espace de nommage ExtCtrls
- TCategoryPanelGroup, un contrôle conteneur qui contient un ou plusieurs panneaux réduisibles
- La classe TCharacter a été ajoutée au nouvel espace de nommage Character
- TLinkLabel pour ajouter des liens HTML à un libellé texte
- TTListGroup, TListGroups pour supporter les groupes sur une vue liste
- TEncoding et TStringBuilder ont été ajoutés à l'espace de nommage SysUtils (voir A. Lanusse's Blog about TStringBuilder)
- TCustomHint a été ajouté à l'espace de nommage Controls ; TBalloonHint héritant de TCustomHint
- TStringReader et TStringWriter ont été ajoutés à l'espace de nommage Classes pour lire et écrire des chaînes à l'aide de l'interface TTextReader/Writer
- TStreamReader et TStreamWriter ont été ajoutés à l'espace de nommage Classes pour lire et écrire des flux à l'aide de l'interface TTextReader/Writer
Modifications des classes/composants VCL/RTL
Pour gérer les chaînes dans le nouveau mode Unicode, vous pouvez utiliser la classe SysUtils.TEncoding, comme décrit dans Utilisation de TEncoding pour les fichiers Unicode.
Voir (PDF) Building User Interfaces with Delphi 2009, by Marco Cantu.
Les classes suivantes ont été améliorées :
- TActionManager
- TApplication
- TBitmap
- TButton
- TComboBox
- TControl
- TCustomListView
- TDBImage
- TEdit/TLabeledEdit
- TGraphic
- TImageList
- TLabel
- TListView
- TCustomHeaderControl
- THeaderSection
- TMaskEdit
- TMemo
- TObject
- TPanel
- TPopupActionBar
- TProgressBar
- TRadioGroup
- TScreen
- TTrayIcon
- TTreeView
- TWinControl
Autres améliorations :
- Support des images PNG ajouté, y compris le support de la transparence.
- Propriété DoubleBuffered publiée pour la plupart des composants.
- Propriété ParentDoubledBuffered ajoutée.
- Style d'affichage à thème pour les menus/barres d'outils d'action (nécessite Windows Vista ou supérieur).
- Style ActionManager "Platform Default" ajouté, faisant correspondre l'apparence des menus/barres d'outils d'action au système d'exploitation d'exécution (introduit l'apparence Windows Vista à thème).
Contrôles Ruban
Une des nouvelles fonctionnalités est le support de l'interface utilisateur Microsoft(®) Office Fluent(TM) 2007. Cela est connu sous le terme ruban. Le ruban est géré par TActionManager. TActionManager vous permet de développer des applications mieux exploitables en déployant l'EDI afin de créer des rubans pour votre application Delphi. L'utilisation de TActionManager vous permet de créer des commandes, des boutons, et des graphiques liés à ces rubans.
Le support des contrôles ruban comprend les composants fondamentaux suivants :
- TRibbon : Fournit la fonctionnalité principale du ruban avec des onglets et des groupes de commandes.
- TRibbonApplicationMenuBar : Fournit la fonctionnalité du menu principal des applications.
- TRibbonQuickAccessToolbar : Permet le développement de la barre d'outils d'accès rapide avec votre ruban.
Pour créer une application à l'aide de rubans, commencez par créer une nouvelle application Delphi Win32 VCL. Pour les applications qui utilisent déjà TActionManager, vous pouvez simplement changer le style sur l'un des trois styles de ruban inclus ou convertir votre interface utilisateur existante afin qu'elle puisse utiliser le ruban.
Démos relatives aux contrôles ruban : Trois démos relatives aux contrôles ruban sont installées avec le produit. Elles sont situées dans le dossier Mes documents | RAD Studio | 6.0 | Demos | DelphiWin32 | VCLWin32 | RibbonControls.
Rubriques associées aux contrôles ruban :
Environnement de traduction intégré/Module de traduction externe
ITE et ETM sont à présent disponibles pour Delphi et C++Builder.
L'environnement de traduction intégré (ITE) représente une partie de l'EDI qui simplifie la localisation de vos projets. ITE peut créer un nouveau projet localisé à partir d'un projet existant. ITE ne traduit pas automatiquement le texte, mais fournit un dialogue listant tous les textes nécessitant une localisation et les champs dans lesquels vous pouvez entrer le texte traduit correspondant. Lorsque vous avez entré le texte traduit et construit le projet localisé, vous pouvez définir une autre langue active et afficher une fiche dans le texte localisé. Il n'est pas nécessaire de basculer les locales et de rebooter votre système. Cela vous permet d'effectuer la localisation sans nécessiter un système localisé.
Le module de traduction externe (ETM) est une application autonome qui fonctionne avec les fichiers DFM et les chaînes de texte du code source. Bien que ETM ne vous permette pas de créer un nouveau projet localisé, il fournit un dialogue listant le texte localisé et le texte traduit, de façon identique à ITE.
Modifications de l'aide en ligne
Aide des commandes : L'aide est maintenant disponible pour les commandes des divers menus déroulants de l'EDI, comme les menus Fichier et Composant.
- Pour afficher l'aide d'une commande, mettez en surbrillance une commande dans un menu de l'EDI et appuyez sur F1.
- Pour voir l'aide d'une commande qui n'est pas actuellement activée ou visible, sélectionnez la page Sommaire du visualiseur d'aide et recherchez Commun | Référence | Commandes et dialogues RAD Studio | <nom_menu> | <nom_commande>.
Optimisation de votre accès à l'aide en ligne : Avez vous parfois des problèmes frustrants lors de l'utilisation de l'aide en ligne ? Consultez l'article suivant du Réseau des développeurs CodeGear pour obtenir des conseils sur l'utilisation et la personnalisation du visualiseur d'aide, la définition des filtres et d'autres options de contrôle des capacités d'index et de recherche : Obtenir les meilleurs résultats avec l'aide en ligne de RAD Studio.
API protégée maintenant dans l'aide : Les propriétés et les méthodes protégées (procédures et fonctions) sont à présent incluses dans les rubriques d'aide de l'API.
Le dialogue d'aide contextuelle F1 affiche maintenant les résultats RAD Studio au début de la liste.
Voir aussi
- (PDF) Using New Delphi Coding Styles and Architectures, by Marco Cantu
- (PDF) Building User Interfaces with Delphi 2009, by Marco Cantu
- Unicode dans RAD Studio
- Activation des applications pour Unicode
- Activation des applications C++ pour Unicode
- Présentation des génériques
- Méthodes anonymes dans Delphi
- POINTERMATH (Delphi)
- Présentation des configurations de construction
- Gestionnaire de configurations
- Options de projet
- Jeux d'options : Création, Application, Edition et Suppression
- RC.EXE, le compilateur de ressources Microsoft SDK
- Ressources
- Fenêtre Explorateur de classes Delphi
- Mappage TCHAR
- Fonctionnalités C++0x (C++Builder 2009) - Index
- Transformation en code source
- Utilisation des experts COM
- Tiburon Sneak Peek: COM - by Chris Bensen
- Tiburon Sneak Peek: Project Options - by Chris Bensen
- Editeur de bibliothèques de types
- Enregistrement et recensement des informations d'une bibliothèque de types
- Explorateur de bibliothèques de types
- Expert Importer un composant
- Expert Nouveau composant VCL
- Parcours de la chaîne d'attente
- Framework dbExpress
- Tiburon DataSnap Enhancements - by Steve Shaughnessy
- Preview: Some New and Enhanced Components in Tiburon - by Anders Ohlsson
- Delphi in a Unicode World Part I: What Is Unicode - Why do you need it and How do you work with it in Delphi? - by Nick Hodges
- Delphi in a Unicode World Part II: New RTL Features and Classes to Support Unicode - by Nick Hodges
- Webinar Replay: What's new in Delphi 2009
- Utilisation de TEncoding pour les fichiers Unicode
- Composants disponibles seulement sur un système d'exploitation spécifique
- Création d'une application qui utilise les contrôles ruban