De Delphi 1 a Delphi 7.
Entre Delphi 1 (1995) et Delphi 7 (2002),
le langage Object Pascal a évolué de manière significative
pour répondre aux besoins croissants des développeurs.
Voici un résumé des améliorations successives
dans le langage lui-même entre ces versions :
Delphi 1 (1995)
- Introduction d'Object Pascal :
- Basé sur Pascal, avec des extensions pour la programmation orientée objet (POO).
- Support des classes, méthodes, propriétés et héritage.
- Ajout des mots-clés `class`, `constructor`, `destructor`.
- Gestion des exceptions :
- Premier support des exceptions avec `try...except` et `try...finally`.
try
// Code à tester
except
on E: Exception do
ShowMessage(E.Message);
end;
- Encapsulation et propriétés :
- Introduction des propriétés comme abstraction pour les champs de données.
TPerson = class
private
FName: string;
public
property Name: string read FName write FName;
end;
------------------------------------------------------
Delphi 2 (1996)
- Types de données 32 bits :
- Transition complète vers les applications 32 bits.
- Types `LongWord`, `Int64`, `DWORD`, et `Pointer` ajoutés.
- Polymorphisme et mots-clés liés :
- Mots-clés `override` et `virtual` pour renforcer le polymorphisme.
TBase = class
procedure Speak; virtual;
end;
TDerived = class(TBase)
procedure Speak; override;
end;
- Packages d'unités :
- Les unités Object Pascal (`unit`) deviennent modulaires pour faciliter la maintenance.
------------------------------------------------------
Delphi 3 (1997)
- Automatisation COM/OLE :
- Ajout du mot-clé `dispinterface` pour interagir avec les objets COM.
- Simplification de l'appel d'objets Automation.
- Méthodes dynamiques (`dynamic`) :
- Ajout des méthodes dynamiques pour une gestion optimisée des tables de dispatch.
- Classes abstraites :
- Possibilité de définir des méthodes abstraites via le mot-clé `abstract`.
TAbstract = class
procedure DoSomething; virtual; abstract;
end;
------------------------------------------------------
Delphi 4 (1998)
- Surcharge des méthodes :
- Permet de définir plusieurs méthodes avec le même nom mais des signatures
différentes grâce à `overload`.
TMath = class
function Add(a, b: Integer): Integer; overload;
function Add(a, b, c: Integer): Integer; overload;
end;
- Fonctions inline :
- Optimisation via le mot-clé `inline` (inclusion directe dans le code).
- Initialisation simplifiée des propriétés :
- Ajout de la syntaxe d'initialisation implicite.
property MyProperty: Integer read FMyProperty default 0;
- Support des types variant (`Variant`) :
- Permet de manipuler des types dynamiques sans spécification explicite.
var
V: Variant;
------------------------------------------------------
Delphi 5 (1999)
- Classes conteneurs et TStream :
- Introduction de structures comme `TList`, `TStringList`
et extensions sur `TStream` pour gérer les flux de données.
- Propriétés avec indexeurs :
- Ajout de propriétés qui acceptent des paramètres, améliorant l'accès aux collections.
property Items[Index: Integer]: TItem read GetItem write SetItem;
- Support des sous-plages :
- Déclaration de types avec des sous-plages de valeurs.
type
TSmallRange = 1..10;
------------------------------------------------------
Delphi 6 (2001)
- Support XML et SOAP :
- Intégration des interfaces pour XML et les web services SOAP,
avec des ajustements du langage pour travailler avec des données distribuées.
- Attributs d'accès étendus :
- Ajout de `published` pour rendre des propriétés accessibles aux outils
de conception visuelle et aux bibliothèques.
- Propriétés par défaut sur les classes :
- Possibilité de définir une méthode par défaut appelée via l'opérateur crochets `[]`.
- Mots-clés supplémentaires :
- Introduction de `deprecated` pour signaler les éléments obsolètes.
procedure OldMethod; deprecated;
------------------------------------------------------
Delphi 7 (2002)
- Support pour les environnements modernes :
- Ajout d'optimisations pour les applications Windows XP,
avec un support des thèmes visuels.
- Améliorations dans RTTI :
- Meilleur accès aux informations de type au moment de l'exécution.
- Extensions des classes conteneurs :
- Optimisations des types conteneurs comme `TList` et `TCollection`.
- Ajout du mot-clé `platform` :
- Utilisé pour indiquer qu'une fonction ou une méthode est spécifique à une plateforme.
procedure PlatformSpecific; platform;
------------------------------------------------------
Résumé des améliorations majeures
| Version | Améliorations principales |
|---------|------------------------------------------------------------------------------------------|
| Delphi 1 | Classes, gestion des exceptions, propriétés, POO de base. |
| Delphi 2 | 32 bits, types supplémentaires, polymorphisme renforcé. |
| Delphi 3 | Méthodes dynamiques, classes abstraites, automatisation COM.|
| Delphi 4 | Overload, inline, types variants, propriétés indexées. |
| Delphi 5 | Sous-plages de valeurs, flux de données, TList. |
| Delphi 6 | SOAP, XML, propriétés `published`, `deprecated`. |
| Delphi 7 | Compatibilité Windows XP, RTTI avancée, extensions des classes conteneurs.|
Ces évolutions ont permis à Delphi de passer d'un outil essentiellement
Windows 16 bits à un environnement de développement robuste pour
des applications modernes, tout en enrichissant le langage
Object Pascal pour des besoins de plus en plus complexes.
Aucun commentaire:
Enregistrer un commentaire