Lorsqu'une nouvelle application est créée, C++Builder pourvoit au code de base. Ainsi, vous pouvez exécuter votre programme sans rien avoir à rajouter. Voici ce qui est affichée dans la zone d'édition lors de la création d'une nouvelle application :
//---------------------------------------------------------------------------
#include vcl.h
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
Les lignes de commentaires permettent de clarifier le code en séparant les fonctions. On trouve tout d'abord les instructions de préprocesseur. L'instruction
#include vcl.h
inclut tous les en-têtes de fonction de la bibliothèque de composants visuels. La directive
#pragma hdrstop
permet de définir ce qui sera placé dans les en-têtes précompilées. Tous les fichiers entête (
#include) placés au-dessus de cette directive seront placés dans les entêtes précompilées. Les entêtes précompilées permettent d'accélérer la compilation, au détriment de la place sur le disque dur. Veillez à ce que dans toutes les unités, ce soient les mêmes fichiers qui sont placés au-dessus de cette directive.
#include "Unit1.h"
Cette instruction préprocesseur inclus le fichier d'en-tête Unit1.h qui contient la définition de la classe TForm1.
#pragma package(smart_init)
Cette instruction garantit l'initialisation correcte des paquets joints au programme, dans le bon ordre des dépendances.
#pragma resource "*.dfm"
Les fichiers.dfm contiennent la fiche conceptualisée graphiquement. Tout ce que vous placez sur votre fiche, composants, etc... est stocké dans ce fichier ainsi que les propriétés de chaque composant (hauteur, largeur, position,...) Cette directive signale que le fichier en cours (Unit1.cpp) est le fichier unité d'une fiche : c'est le fichier lié à la fiche. Vient ensuite la déclaration de Form1.
TForm1 *Form1
Form1 est un pointeur sur un objet de type TForm1. Form1 représente votre fiche. Lorsque vous faites
Form1->Edit1->Text, c'est à ce Form1 que vous faites référence.
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
Enfin, ceci est la fonction-constructeur de la fiche. C'est pour cela qu'elle a le même nom que la classe de la fiche :
TForm1. Comme chaque fonction de la fiche (méthodes), son appartenance à celle-ci est marquée par le
TForm1::. La méthode suivante :
void TForm1::CompterMots()
{
}
est la fonction
CompterMots qui appartient à la classe
TForm1. Le constructeur a pour argument
TComponent* Owner. Voir
qu'est-ce qu'un "Owner". Enfin, le code :
: TForm(Owner)
Sachez que la classe TForm1 dérive d'une classe parente TForm. Dans la VCL, il existe par une classe fiche TForm qui contient tout ce qui est nécessaire à une fiche par défaut (bordure, couleur, barre de titre...). Lorsque dans le concepteur, vous modifiez votre fiche, vous créez en fait une nouvelle classe qui a toutes les propriétés de la classe TForm mais qui en a de nouvelles : tous les composants que vous rajoutez. Ainsi, le code ci-dessus signifie qu'on appelle le constructeur de la classe parente de TForm1 qui est TForm avec comme argument l'argument passé en au constructeur de la classe TForm1.
Pour la directive
__fastcall, veuillez vous reporter
qu'est-ce que la directive __fastcall.