Compte-Rendu CodeWay Show
Date de publication : 2008
Par
Julien Lelong (jlelong.developpez.com)
Résumé de la conférence CodeWay Show qui a eu lieu le 18 Septembre 2008 de 14h à 18h au NCI (la Défense, Paris).
C'est la version anglaise qui a été utilisée lors de la rédaction de cet article.
Vous pouvez retrouver le diaporama qui a servi tout au long de la conférence
ici ou
là.
Vous pouvez également consulter les articles sur les
nouveautés de l'IDE ainsi qu'un article dédié à
l'unicode avec Delphi 2009.
I. Présentation
I-A. Embarcadero, un éditeur de logiciels
I-B. Le rachat de CodeGear par Embarcadero
II. Les nouveautés de la version 2009
II-A. Au niveau de l'IDE
II-B. Au niveau du langage
II-B-1. Les génériques
II-B-1-a. Définition
II-B-1-b. Exemples de déclaration
II-B-2. Les Méthodes Anonymes
II-B-2-a. Définition
II-B-2-b. Exemples de déclaration
II-C. Au niveau des composants
II-C-1. TBallonHints
II-C-2. TNumbersOnly
II-C-3. TLinkLabel
II-C-4. TButtonedEdit
II-C-5. TCategoryPanelGroup
II-C-7. Ribbon Controls
II-D. Les autres nouveautés
III. Où trouver Delphi 2009
III-A. Version d'essai en téléchargement
III-B. Acheter Delphi 2009
IV. Remerciements
I. Présentation
I-A. Embarcadero, un éditeur de logiciels
La société Embarcadero, dont le siège est à San Fransico, a été fondée en 1993. Elle s'est inscrite au NASDAQ
en 2000 et a été acquise par Thoma Cressey Bravo (alis TCB) le 27 Juin 2007. Depuis ce jour, la société
est devenue une société privée. La firme atteind un revenu annuel de plus de 100 millions de dollars,
compte plus de 90 000 clients et est implantée dans 29 pays.
I-B. Le rachat de CodeGear par Embarcadero
Embarcadero Technologies a finalisé l'acquisition de CodeGear de Borland Software Corporation (NASDAQ:
BORL) pour environ 24,5 millions de dollars le 30 Juin 2008. CodeGear est en cours d'intégration
dans Embarcadero Technologies, qui continuera à fonctionner comme une entreprise privée sous la
direction de l'actuel chef de la direction d'Embarcadero Wayne Williams. A ce jour, on peut noter
l'arrivée sur le marché de Delphi 2009 et de C++ 2009 et, vers la fin de l'année, l'arrivée de RAD
Studio 2009.
II. Les nouveautés de la version 2009
Cette nouvelle version de Delphi 2009 apporte son lot de nouveautés. On notera des modifications aussi
bien au niveau de l'IDE que de la VCL ou encore l'ajout de nouveaux composants.
II-A. Au niveau de l'IDE
L'IDE Delphi 2009 possède la même interface que l'IDE Delphi 2007 à quelques modification près.
Liste des nouveautés et des améliorations
-
IDE entièrement Unicode!
Il ne s'agit pas simplement d'une VCL qui supporte l'unicode mais plus concrètement du
type String qui évolue pour supporter l'unicode. Ce qui implique que tous les endroits ou le type
String est utilisé permettront de gérer de l'unicode (Fonctions de traitements de chaines, VCL....etc).
Cela ouvre ainsi des opportunités pour le marché de la chine, Russie, Corée, Japon.
 |
Le type String ayant évolué (passage de l'ANSI à l'UTF 16), il est bon de noter que la fonction SizeOf
renverra 2 octets pour un caractère, non un octet comme c'était le cas jusque maintenant! Cependant,
la fonction length fait toujours son travail correctement!
|
-
Ajout d'un explorateur de classes afin de lister les méthodes et permettre un accès direct à leur déclaration.
Il sera possible également d'ajouter de nouvelles méthodes directement via cette interface.

Explorateur de classes
-
Ajout d'un panneau de configaration des "Builds" avec un gestionnaire de configuration permettant une
configuration rapide de l'IDE lors du choix du paramètrage pour la compilation.

Configuration des Builds
-
Amélioration du gestionnaire de projets avec de nouvelles options telles que l'ajout de composant activeX,
d'unités, de dll.

Gestionnaire de Projets
-
Amélioration du Wizard pour l'import et la création de composants.
-
Ajout d'un mode d'importation du composant directement dans un package.
-
Mise à jour de la VCL (gestion de l'Unicode) ainsi que le support COM/ActiveX avec accès RIDL.
II-B. Au niveau du langage
Au niveau du langage, on notera l'ajout des génériques ainsi que les méthodes anonymes.
II-B-1. Les génériques
II-B-1-a. Définition
Les génériques sont des classes, structures, interfaces et méthodes qui ont des types paramétrés pour
un ou plusieurs types qu'elles utilisent ou stockent.
Ce mécanisme était déjà disponible avec Delphi 2007 .NET uniquement. Désormais, toutes les versions
de Delphi, qu'elles soient .NET ou non, pourront utiliser les génériques.
II-B-1-b. Exemples de déclaration
| Exemple 1 sur les génériques |
procedure TForm1.Button1Click(Sender:TObject);
var
myList:TList<Integer>;
begin
myList:=TList<Interger>.Create;
try
myList.AddRange([1,2,3]);
PrintListInteger(myList);
myList.RemoveAt(1);
PrintListInteger(myList);
myList.Clear;
PrintListInteger(myList);
finally
myList.free;
end;
end;
|
Afin de mieux comprendre l'utilisation des génériques, nous allons voir une déclaration comme nous l'aurions fait
auparavant, puis nous traduirons le code en utilisant les génériques.
| Déclaration sans les génériques |
type
TSIPair = class
private
FKey: String;
FValue: Integer;
public
function GetKey: String:
procedure SetKey(Key: String);
function GetValue: Integer;
procedure SetValue(Value: Integer);
property Key:TKey read GetKey write SetKey;
property Value:TValue read GetValue write SetValue;
end;
|
| Déclaration avec les génériques |
type
TPair<TKey, TValue> = class
private
FKey: TKey;
FValue: TValue;
public
function GetKey: TKey:
procedure SetKey(Key: TKey);
function GetValue: TValue;
procedure SetValue(Value: TValue);
property Key:TKey read GetKey write SetKey;
property Value:TValue read GetValue write SetValue;
end;
type
TSIPair = TPair<String, Integer>;
TSIPair = TPair<String, String>;
TSIPair = TPair<Integer, Integer>;
TSIPair = TPair<Integer, String>;
TSIPair = TPair<String, String>;
TSIPair = TPair<String, TXMLNode>;
|
Nous allons voir également comment cela se passe avec les tableaux d'objets.
| Tableau d'objets sans les génériques |
procedure TForm1.Button1Click(Sender: TObject);
var
PersonList: TObjectList;
o: TObject;
p: TPerson;
begin
PersonList:=TObjectList.Create;
PersonList.Add(TPerson.Create('Embarcadero');
PersonList.Add(TPerson.Create('CodeGear');
PersonList.Add(TPerson.Create('DatabaseGear');
for o in PersonList do
begin
p := TPerson(o);
ListBox1.Items.Add(p.Name);
end;
end;
|
| Tableau d'objets avec les génériques |
procedure TForm1.Button1Click(Sender: TObject);
var
PersonList: List<TPerson>;
p: TPerson;
begin
PersonList:=List<TPerson>.Create;
PersonList.Add(TPerson.Create('Embarcadero');
PersonList.Add(TPerson.Create('CodeGear');
PersonList.Add(TPerson.Create('DatabaseGear');
for p in PersonList do
begin
ListBox1.Items.Add(p.Name);
end;
end;
|
II-B-2. Les Méthodes Anonymes
II-B-2-a. Définition
Une méthode anonyme est une fonction ou une procédure associée à une variable et
qui sera déclenchée à chaque appel de celle-ci.
Les exemples parleront plus qu'un long discours!
II-B-2-b. Exemples de déclaration
Premier exemple :

Les methodes anonymes
Un second exemple :

Les methodes anonymes 2
II-C. Au niveau des composants
Voici les principales nouveautés au niveaux des composants.
Vous pourrez retrouver toute la liste des changements sur le site de
CodeGear/Embarcadero.
II-C-1. TBallonHints
Ce petit composant, déjà disponible dans la JVCL, est désormais installé par défaut.
Il permet de modifier l'apparence de l'info bulle.
 |
Pour que ce composant fonctionne, il est impératif que le thème Windows soit activé!
|

Bulle d'aide personnalisée
II-C-2. TNumbersOnly
Ce composant permet de ne saisir que des chiffres! Il nous évitera de faire le contrôle sur la saisie!
De plus, si l'on tente tout de même de saisir des caractères, une jolie bulle d'infos nous rappelle que les caractères ne sont pas autorisés!

Composant TNumbersOnly
II-C-3. TLinkLabel
C'est un label évolué qui reconnait la balise HTML a.
Il permettra donc de faire facilement un lien hypertexte.
Voici un exemple :
| LinkLabel |
LinkLabel1.Caption := '<a href="http://www.developpez.com">www.developpez.com</a>';
|
Ce qui donne :

Exemple TLinkLabel
II-C-4. TButtonedEdit
C'est un TEdit évolué qui, couplé à un TImageList, permettra de mettre une image sur la droite et/ou
la gauche du TEdit.

Composant TButtonedEdit
II-C-5. TCategoryPanelGroup
Ce composant permet de créer plusieurs catégories de panels coulissants.

Composant TCategoryPanelGroup
II-C-7. Ribbon Controls
Ce composant permet d'utiliser le thème d'office 2007 dans votre application.
Ainsi, vous pourrez utiliser les rubans!
 |
Afin de pouvoir utiliser ce composant, il vous faudra enregistrer votre licence auprès de Microsoft, licence inclue avec l'achat de Delphi 2009.
|

Composant Ribbon Controls
II-D. Les autres nouveautés
On peut citer la mise à jour d'Interbase, qui passe en version 2009 également.
Au niveau des nouveautés, Interbase permettra le cryptage des bases de données. Point positif également, la BDD sera embarquable.
On notera une évolution majeure en ce qui concerne la licence. En effet, auparavant, il fallait acquérir une licence
par coeur, désormais, une seule licence pourra assurer la gestion des processeurs multi-coeurs.
Delphi 2009 peut désormais gérer le PNG par défaut.
En effet, pour ceux qui connaissaient le composant TPNGImage, la firme CodeGear à procéder à son rachat afin
de l'inclure par défaut dans la palette de composants.
Mise à jour de Rave Reports qui passe en version 7.6. Pas de gros changements si ce n'est le support de l'Unicode.
Coté Web, il sera désormais possible d'inclure du Silverlight. Il s'agit bien d'inclure une vidéo et non de programmer ...
Idem pour la technologie Flash!
Mise à jour de TeeChart qui passe en version 8.0 et offre donc un panel plus complet en ce qui concerne les vues
ainsi que son lot d'améliorations
Utilisation d'ER Studio pour la modélisation. Il remplacera ECO 4 mais une passerelle devrait être créée afin
de basculer d'ECO 4 à ER Studio. Cet outil de modélisation, au même titre que MySQL Workbench 5.0, permettra de créer les tables à partir
d'un MEA et inversement.
III. Où trouver Delphi 2009
III-A. Version d'essai en téléchargement
Vous pouvez vous rendre dès à présent sur le site de
CodeGear/Embarcadero
pour obtenir votre version d'essai.
 |
La période d'évaluation est passée de 30 jours à 14 jours, cela étant dû au fait qu'Embarcadero proposait ses versions
d'évalutions à 14 jours. Cependant, les versions d'essais sont fonctionnelles dans leur intégralité!
Attention tout de même, la version d'essai ne permet pas d'utiliser les outils en lignes de commandes (compilation automatique de jcl/jvcl par exemple).
|
III-B. Acheter Delphi 2009
Vous pouvez également voir les tarifs de Delphi 2009 sur
www.sosdevelopers.com.
Comme d'habitude, vous avez la possibilité d'acheter Delphi 2009 en version architecte, professionnelle, entreprise, ou encore une mise à jour. Il existe
également des Bundles, c'est à dire des packs comprenant C++ 2009 en plus de Delphi 2009.
IV. Remerciements
Je remercie Thierry Laborde qui a présenté l'événement CodeWay Show 2 et qui nous autorise l'utilisation et la publication du diaporama
qui a servit tout au long de la conférence.
Je remercie également hpalpha, Nono40, evarisnea et Laurent Dardenne pour leur relecture et leurs conseils.


Copyright © 2008 Lelong Julien. 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.