Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Delphi 10.3
  3. Les applications Windows avec la VCL
Extrait - Delphi 10.3 Programmation orientée objet en environnement Windows
Extraits du livre
Delphi 10.3 Programmation orientée objet en environnement Windows
9 avis
Revenir à la page d'achat du livre

Les applications Windows avec la VCL

La VCL : Visual Component Library

1. Introduction

La VCL ou Visual Component Library est un ensemble de composants et de routines fournis par Delphi XE. Elle encapsule les API Windows en les rendant plus faciles à utiliser. Elle encapsule également les composants graphiques comme les boutons, les zones d’édition ou les fenêtres. Pour chaque composant graphique Windows, il existe son composant similaire à l’intérieur de la VCL.

Parmi les composants de la VCL se trouvent des composants visuels ou non visuels :

  • Exemples de composants visuels : TButton qui représente un bouton ou TForm qui représente une fenêtre.

  • Exemples de composants non visuels : TTimer qui correspond à un gestionnaire de tâche périodique ou TConnection qui correspond à une connexion vers une base de données. Ces deux exemples n’ont pas de représentation graphique.

2. Les classes de base

Dans cette section vont être étudiées les classes de base de la VCL, à savoir dans l’ordre TComponent, TControl et TWinControl. Pour rappel, vous trouverez ci-dessous le diagramme de classe de la hiérarchie jusqu’à TWinControl

images/diagramme.png

a. La classe TComponent

La classe TComponent est la classe de base des composants accessibles par la palette de composants de Delphi. Un composant n’a pas à proprement parler d’interface graphique. Cette responsabilité revient à la classe directement héritée TControl.

Différents concepts sont implémentés dans cette classe.

Intégration par l’IDE

Toute classe héritant de TComponent peut devenir accessible par l’IDE et éditable à travers le Form Designer.

Notion d’appartenance

Elle est portée par la propriété Owner. Elle permet de déterminer le propriétaire d’un composant et le responsable devant libérer la mémoire allouée par ce composant. Cette notion d’appartenance est modélisée de manière graphique dans le Structure Editor. Grâce à cette notion, quand un composant est libéré par l’appel de son destructeur, les composants lui appartenant sont aussi libérés automatiquement par la VCL. Pour pouvoir gérer ce concept correctement, chaque...

La classe TApplication

Créer une application Windows en Delphi se fait en quelques clics de souris à travers l’IDE notamment grâce à l’existence de la classe TApplication. Cette classe encapsule tout ce qui est nécessaire pour démarrer et contrôler une application Windows, que cette application soit graphique ou non.

Examinons le dpr du projet le plus basique, VCL Form. Lorsqu’on crée avec l’IDE un projet VCL application Form, le dpr généré est :

program ExempleApplicationForm; 
 
uses 
 Vcl.Forms, 
 Unit1 in 'Unit1.pas' {Form1}; 
 
{$R *.res} 
 
begin 
 Application.Initialize; 
 Application.MainFormOnTaskbar := True; 
 Application.CreateForm(TForm1, Form1); 
 Application.Run; 
end. 

L’IDE a automatiquement déclaré une instance de TApplication et dans le cas ci-dessus c’est l’instance de TApplication qui a instancié la form principale Form1 de type TForm1 avec la ligne :

Application.CreateForm(TForm1, Form1); 

L’application se lance grâce à la ligne :

Application.Run; 

Un processus apparaîtra dans la liste des processus du manager de tâche de Windows qui aura le nom du programme ExempleApplicationForm.

D’un point de vue des dépendances d’objets, c’est...

Les applications Windows VCL

Une application Windows VCL est une application qui possède un rendu graphique contenu dans un élément graphique que l’on appelle Form (fiche).

Une Form (fiche) est une instance de TForm qui est un élément de la VCL et qui encapsule le comportement des fenêtres du système d’exploitation Windows. 

Même s’il existe une multitude d’architectures différentes pour définir ces applications, on en distingue deux grands types : le type SDI pour Single Document Interface et le type MDI pour Multiple Document Interface.

Single Document Interface signifie interface mono-document. L’application ne possède qu’un seul élément graphique Form qui peut être actif à l’écran à un moment donné.

Exemple

images/06P01.PNG

Multiple Document Interface signifie interface multidocument. Plusieurs fenêtres peuvent être actives en même temps et il existe une hiérarchie Parent/Enfant où des éléments graphiques Forms enfants se retrouvent disposés à l’intérieur de la fenêtre parent. Il n’y a dans ce cas qu’une seule fenêtre parent et si l’utilisateur ferme la fenêtre parent, l’application s’arrête.

Exemple

images/06P02.PNG

1. Une application Windows VCL simple

Pour créer une application Windows...

Création d’une IHM avec Delphi

Une IHM ou interface homme machine n’est autre qu’une application Form graphique. Nous allons utiliser ici les composants les plus courants et les manipuler pour mettre en évidence leur intérêt.

1. Paramètres d’affichage de TForm

Examinons certaines propriétés publiques accessibles par le Form Designer de l’instance de la TForm concernant l’affichage de l’application Form (pour rappel, toute classe héritant de TComponent peut devenir accessible par l’IDE et éditable à travers le Form Designer) :

  • BorderIcons : permet d’activer ou désactiver les icônes en haut à droite images/06P10a.png
  • Ici bsMaximize est passé à False.

  • BorderStyle : permet de définir certains styles du bandeau du haut.

  • bsDialog donne images/06P10b.png
  • bsNone ne donne aucun bandeau, quand la fenêtre apparaît, l’utilisateur ne peut pas fermer la fenêtre lui-même ni la déplacer. On s’en sert en général pour les fenêtres d’attente (Splash-screen).

  • bsSingle est le style par défaut images/06P10c.png, on peut maximiser la fenêtre mais pas définir une taille personnalisée en ’tirant’ sur les bords.
  • bsSizeable définit les boutons par défaut comme précédemment et permet également de donner une taille personnalisée à la fenêtre. Elle est redimensionnable (sizeable).

images/SDI2.png
  • bsSizeToolWin définit un style similaire à bsDialog avec un rendu un peu différent. L’utilisateur peut redimensionner la fenêtre.

images/SDI3.png
  • bsToolWindow est similaire au rendu précédent mais l’utilisateur ne peut pas redimensionner la fenêtre.

  • Color : c’est la propriété de la couleur de fond. On peut lui affecter un enum prédéfini dans le Form Designer, comme clYellow un code couleur RGB.

  • FormStyle : vu précédemment pour définir des forms SDI ou MDI, et définir si la fenêtre est parent ou enfant. La valeur fsStayOnTop permet à la fenêtre de n’être jamais cachée par une autre application.

  • Position : permet de définir la position de la fenêtre lors du démarrage sans utiliser les propriétés Top et Left.

  • WindowState : permet de définir...

Conclusion

Ce chapitre a été l’occasion d’aborder la création d’applications graphiques pour Windows. La plupart des composants ont été étudiés et l’intérêt de Delphi reside dans leur facilité d’utilisation et leur modularité. On peut les agencer à souhait et créer ainsi des applications complexes ou non, réactives et configurables. Allons maintenant plus loin en étudiant comment créer nos propres bibliothèques de routines et de composants graphiques.