Les génériques avec Delphi 2009 Win32

Avec en bonus les routines anonymes et les références de routine

Date de publication : 13 novembre 2008

Par Sébastien Doeraene (sjrd.developpez.com)
 

On les attendait depuis longtemps ! Les voici enfin : les génériques dans Delphi Win32. Ces petites merveilles arrivent avec Delphi 2009. Ce tutoriel vous propose de les comprendre, d'apprendre à les utiliser, puis à concevoir vos propres classes génériques.
idea Vos commentaires, critiques, suggestions, etc. sont les bienvenus sur le blog.
Version anglophone de ce tutoriel - English version of this tutorial: Generics with Delphi 2009 Win32

Juan Badell a traduit ce tutoriel en espagnol : Los genéricos en Delphi 2009 (miroir HTTP)

Aleksey Timohin en a également fait une traduction en russe.
Cette traduction peut également être consultée au format PDF, construit par Andrew Tishkin (miroir HTTP).

Introduction
I. Introduction
I-A. Pré-requis
I-B. Que sont les génériques ?
Utilisation au quotidien
II. L'utilisation au quotidien : l'exemple TList<T>
II-A. Un code simple de base
II-B. Assignations entre classes génériques
II-C. Les méthodes de TList<T>
II-D. TList<T> et les comparateurs
II-D-1. Écrire un comparateur en dérivant TComparer<T>
II-D-2. Écrire un comparateur avec une simple fonction de comparaison
Conception d'une classe générique
III. Conception d'une classe générique
III-A. Déclaration de la classe
III-B. Implémentation d'une méthode
III-C. La pseudo-routine Default
III-D. Les références de routine avec les parcours d'arbre
III-D-1. D'autres méthodes qui utilisent les routines anonymes ?
III-E. Et le reste
III-F. Comment utiliser TTreeNode<T> ?
Conception d'un record générique
IV. Conception d'un record générique
Aller plus loin : contraintes, plusieurs paramètres
V. Contraintes sur les types génériques
V-A. Quelles sont les contraintes possibles ?
V-B. Mais à quoi ça sert ?
V-C. Une variante avec constructor
VI. Paramétriser une classe avec plusieurs types
VII. Autres types génériques
Méthodes génériques
VIII. Méthodes génériques
VIII-A. Une fonction Min générique
VIII-B. La surcharge et les contraintes
VIII-C. Des ajouts pour TList<T>
RTTI et génériques
IX. RTTI et génériques
IX-A. Les changements sur la pseudo-routine TypeInfo
IX-A-1. Une fonction TypeInfo plus générale
IX-B. Les types génériques ont-ils des RTTI ?
Conclusion
X. Conclusion
XI. Télécharger les sources
XII. Remerciements


Tutoriels
Les génériques avec Delphi 2009 Win32 (English version) - également disponible en espagnol et en russe
Réaliser un plug-in comportant un composant
Construire une procédure pointant sur une méthode
Création de composants - en 4 parties
Refactoring avec Delphi 2007
Prise en main de Delphi 2005
Analyseurs syntaxiques - Leur fonctionnement par l'exemple
Créer un fichier d'aide HLP
Pourquoi un paramètre const change-t-il mystérieusement de valeur ?
Sources
SJRDUnits - Routines et classes diverses
SJRDComps - Quelques composants
Projet Sepi
Présentation
FAQ Sepi
Programmes
FunLabyrinthe - Jeu de labyrinthe très spécial et très fun
TrickTakingGame - Jeux de cartes à plis en ligne
MultiAgenda - Agenda multi-répertoires
DecodeFormulaires - Décode les formulaires
Excel --> HTML - Convertisseur de tableaux Excel en HTML
AddressLinks - Lie les adresses Internet et e-mail d'un document HTML
Vipion - Tic Tac Toe sur 4x4 cases avec jeu de l'ordinateur
BigCalc - Calculatrice de haut niveau
Espace paroissial Astérion de Watermael-Boitsfort

Valid XHTML 1.0 TransitionalValid CSS!

Copyright © 2008 Sébastien Doeraene. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Delphi - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.