Recherche
1 connecté

  Actuellement : 2 commentaires Delphi 8 premier pas (1)

Delphi 8 :premier contact (1)

dernière mise à jour le : samedi 24 avril 2004

Retour au sommaire

 

Premier contact

J'étais habitué aux grosses boites au look "utilitaire". D8 est tout autre : look très moderne, les rangements des CD et des licences sont originaux et bien pensés. Belle présentation !

Delphi 8 etant fait pour développer en .NET. Il est livré avec une version de Delphi 7 pour des besoins de développement en Win32.


Bon, c'est pas le tout mais l'emballage ne fait pas le moine . Il faut installer D8.

J'insère le CD et là : acceuil par quelques notes de guitare !

L'installation se fait sans problème. Elle est plus longue que pour D7 mais ne pose pas de problème particulier. A noter une procédure d'inscription en ligne avec un code etc...

 

L'EDI

Admirez l'icone de lancement : On clique. De même que D6 mettait plus de temps à s'ouvrir que D5, D7 plus de temps que D6, D8 met plus de temps que D7. Normal, il y a de plus en plus de choses à charger...

 

Page d'accueil :

 

On clique sur "nouveau" et on obtient :

Extrait de l'aide :

Applications VCL.NET
Vous pouvez utiliser Fiches VCL pour créer une application Windows .NET qui utilise des composants du VCL.NET Framework. Delphi 8 pour .NET simplifie la construction d'applications .NET en prenant en charge les composants VCL qui ont été améliorés pour être exécutés sur le .NET Framework. Vous n'avez alors plus à créer des composants personnalisés pour fournir des capacités standard de composants VCL. Ceci facilite et rend plus sûr le processus de portage des applications Win32 vers .NET.

Ok, on prend. Je clique donc sur "Application fiches VCL"

La page qui s'affiche alors est un peu différente de ce que l'on avait l'habitude :

La palette de composant n'est plus en haut mais an bas à droite et sous une forme un peu différente...

Alors et le code ?

Bon, je pose un TButton, je double clique, ça m'ouvre l'évènement OnClick. Rien de différent par rapport à nos habitudes. On ne sera pas perdu.

J'implémente comme suit :

 

Un F9 et j'obtiens bien ce que je veux

Les fins observateurs ont pu voir que dans le code ci-dessus, à gauche, il y a des + et des - Cela permet de replier une partie du code par exemple la partie interface et notre évènement OnClick. Pas mal non !

Dans le même genre, si on se place sur une parenthèse, il la colorie ainsi que la parenthèse correspondante. Il fait pareil avec les { mais pas avec les Begin et end.

Tien, au passage, lorsque l'on est en train d'éditer le code, on a en bas à droite une fenêtre "Snippets de code" qui nous permet en double cliquant sur un des Items d'incorporer une portion de code qui s'idente alors automatiquement

Compatibilité avec les anciennes versions :

J'ai pu sans problème charger des petits programmes faits avec des versions antérieures à partir du moment où ces programmes étaient faits en Delphi "pur" à l'aide de la VCL. Par contre, dès que j'ai voulu charger des programme utilisant des API, ça ne passe pas, entre autre parceque les PChar n'existent plus. En fait, d'une façon générale, D8 (en fait le .NET) est beaucoup plus rigoureux et on ne peux plus jouer avec les adresses mémoires, les pointeurs etc.
Dans le même esprit, on ne peux plus programmer en assembleur en .NET et donc en D8.

A titre d'exemple, l'exemple "Création d'un controle à l'exécution." qui crée un TButton à l'exécution fonctionne parfaitement en D8 car on est dans le pascal objet pur.

Par contre, l'exemple qui renvoit le dossier courant en utilisant l'API GetCurrentDirectory

GetCurrentDirectory(SizeOf(buffer),buffer);

ne compile plus (ne connait pas les PChar).

Il y a quand même moyen de contourner cela pour continuer à utiliser les "vielles" API mais l'idée de base est de se servir des "API" .NET qui, elles, ne s'attaque pas avec des PChar mais avec des strings ou d'autres types parfaitement intégrés à D8.

En D8, il faut utiliser Directory.GetCurrentDirectory après avoir ajouter System.IO dans les uses.

implementation

{$R *.nfm}
uses System.IO;
procedure TForm1.Button1Click(Sender: TObject);
begin
 ShowMessage(Directory.GetCurrentDirectory);
end;

Pour les curieux, allez voir sur msdn.microsoft.com toutes les méthodes de la class Directory
Et celles pour la class File

 

Conclusion :

Faire une application de base utilisant la VCL ne posera aucun problème aux "anciens" programeurs Delphi. Pas de crainte à avoir de ce coté là. Par contre, les adeptes des PChar et les adeptes des adresses mémoires manipulées dans tout les sens auront du mal à continuer à exercer leurs talents.

Ceux qui pratiquent les API devront "juste" changer d'habitude en allant prendre les class disponibles dans la "NET Framework Library". Leur utilisation est plus aisée.

 

Retour au sommaire