Nouveautés Delphi 2009 - partie 2

Débogueur DELPHI 2009


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  Outils>Options>Options du débogueur>Exceptions natives du SE. 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 TDBXCommand.Prepare provoque le remplissage automatique de la liste de paramètres TDBXCommand avec les 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 TDSServer gère la création et la durée de vie des transports et des classes de méthode serveur. Vous pouvez utiliser TDSServer pour créer votre propre serveur à niveau intermédiaire. Le nouveau composant 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 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 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 TRemoteDataModule afin que les fournisseurs qu'elles contiennent soient accessibles par le nouveau composant client TDSProviderConnection côté client. TDSProviderConnection offre une connectivité à un serveur DataSnap utilisant dbExpress et est fourni pour que les applications existantes restent compatibles et pour profiter des nouvelles fonctionnalités DataSnap. Les nouvelles applications n'ont pas besoin d'utiliser TRemoteDataModule ou 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.

VCL et RTL


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.


 

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


Les classes suivantes ont été améliorées :
  • TActionManager

    • Supporte les listes d'images larges et désactivées
    • Nouvelles propriétés : DisabledImages, LargeImages, LargeDisabledImages


  • TApplication

    • Supporte la fourniture d'une fonte pour les fiches avec ParentFont définie sur True
    • Nouvelles propriétés : DefaultFont


  • TBitmap

    • Supporte les bitmaps 32 bits avec un canal alphabétique
    • Nouvelles propriétés : AlphaFormat


  • TButton

    • Affiche les images des listes d'images (nécessite Windows XP ou supérieur)
    • Supporte les styles BS_COMMANDLINK et BS_SPLITBUTTON (nécessite Windows Vista ou supérieur)
    • Style de bouton Windows Vista ajouté (CommandLink, SplitButton) en tant que propriété Style : propriétés CommandLinkHint, DropDownMenu et OnDropDownClick également ajoutées pour les nouveaux styles
    • Nouvelles propriétés : Images, ImageIndex, HotImageIndex, DisabledImageIndex, PressedImageIndex, SelectedImageIndex, DropDownMenu, ElevationRequired (Windows Vista seulement), ImageAlignment, ImageMargins, CommandLinkHint, Style
    • Nouveaux événements : OnDropDownClick


  • TComboBox

    • Supporte les conseils in-situ (nécessite Windows XP ou supérieur)
    • Nouvelles propriétés : TextHint


  • TControl

    • Supporte la mise en mémoire tampon double sur le parent
    • Supporte les conseils personnalisés
    • Nouvelles propriétés : ParentDoubleBuffered, CustomHint, ParentCustomHint


  • TCustomListView

    • Nouvel événement : OnItemChecked


  • TDBImage

    • Supporte l'affichage "ajusté"
    • Nouvelle propriété : Proportional


  • TEdit/TLabeledEdit

    • Supporte l'alignement de texte
    • Supporte les conseils in-situ (nécessite Windows XP ou supérieur)
    • Supporte le style ES_NUMBER (nombre uniquement en entrée)
    • Supporte le symbole PasswordChar à thème (nécessite Windows XP ou supérieur)
    • Nouvelles propriétés : Alignment, NumbersOnly, TextHint


  • TGraphic

    • Supporte les images transparentes
    • Nouvelle propriété : SupportsPartialTransparency


  • TImageList

    • Supporte les images mélangées alpha
    • Supporte tous les formats graphiques recensés
    • Niveau de couleur augmenté Remarque : L'augmentation du niveau de couleur efface les images existantes d'un TImageList.
    • Nouvelles propriétés : ColorDepth


  • TLabel

    • Supporte les effets de transparence lumineux en arrière-plan (nécessite Windows Vista ou supérieur)
    • Nouvelles propriétés : GlowSize (transparence Windows Vista seulement)


  • TListView

    • Support du groupe de base (nécessite Windows XP ou supérieur)
    • Support du groupe avancé (nécessite Windows Vista ou supérieur)
    • Nouvelles propriétés : GroupView, Groups, GroupHeaderImages
    • Nouveaux événements : OnItemChecked


  • THeaderControl

    • Supporte les cases à cocher et les sections d'en-tête à largeur fixe
    • Nouvelles propriétés : CheckBoxes, NoSizing, OverFlow


  • THeaderSection

    • Nouvelles propriétés : Checkbox, Checked, FixedWidth (Windows XP ou supérieur uniquement)


  • TMaskEdit

    • Supporte l'alignement de texte
    • Supporte les conseils in-situ (nécessite Windows XP ou supérieur)
    • Supporte le symbole PasswordChar à thème (nécessite Windows XP ou supérieur)
    • Nouvelles propriétés : Alignment, TextHint


  • TMemo

    • Nouvelles propriétés : CharCase


  • TObject

    • Nouvelles méthodes :

      • class function UnitName: string
      • function Equals(Obj: TObject): Boolean; virtual
      • function GetHashCode: Integer; virtual
      • function ToString: string; virtual


    • Il existe maintenant des surcharges supplémentaires pour les méthodes suivantes : Surcharges qui prennent une chaîne codée UTF-8 en paramètre d'entrée :

      • class function MethodAddress(const Name: ShortString): Pointer; overload
      • class function MethodAddress(const Name: string): Pointer; overload
      • function FieldAddress(const Name: ShortString): Pointer; overload
      • function FieldAddress(const Name: string): Pointer; overload


    • Les types de retour des fonctions suivantes ont été modifiés de ShortString à String, et la valeur renvoyée est une valeur chaîne entièrement décodée UTF-8 :

      • class function ClassName: string
      • class function MethodName(Address: Pointer): string




  • TPanel

    • Supporte le masquage des libellés
    • Nouvelles propriétés : ShowCaption


  • TPopupActionBar

    • Supporte les styles ActionBar
    • Nouvelles propriétés : Style


  • TProgressBar

    • Supporte les couleurs personnalisées (non applicable aux thèmes d'exécution)
    • Supporte le style rectangle de sélection (nécessite Windows XP ou supérieur)
    • Supporte les états et le style inverse lisse (nécessite Windows Vista ou supérieur)
    • Nouvelles propriétés : Style, MarqueeInterval, BarColor, BackgroundColor, SmoothReverse, State


  • TRadioGroup

    • Supporte le retour automatique en fin de ligne dans les cases à cocher
    • Nouvelles propriétés : WordWrap Remarque : Le composant ne calcule pas l'exigence d'espacement vertical. Les utilisateurs nécessitent toujours d'autoriser un espace vertical suffisant dans la conception de la fiche


  • TScreen

    • Supporte la fonte système par défaut pour les boîtes de message
    • Nouvelles propriétés : MessageFont


  • TTrayIcon

    • Nouveaux événements : OnBalloonClick


  • TTreeView

    • Supporte les noeuds d'arborescence désactivés (nécessite Windows XP ou supérieur)
    • Supporte l'index d'image des noeuds développés

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 Ribbon (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.

Compatibilité Microsoft Windows Vista


Certains composants, classes, méthodes et propriétés sont compatibles avec l'apparence du système d'exploitation Windows Vista.

Aucun commentaire: