Examen d'un objet Delphi

De RAD Studio
Aller à : navigation, rechercher

Remonter à Qu'est ce qu'un objet ?


Lorsque vous créez un nouveau projet, l'EDI affiche une nouvelle fiche que vous pouvez personnaliser. Dans l'éditeur de code, l'unité générée automatiquement déclare un nouveau type de classe pour la fiche et inclut le code qui crée la nouvelle instance de fiche. Le code généré pour une nouvelle application Windows ressemble à ceci :

unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm){ The type declaration of the form begins here }
  private
    { Private declarations }
  public
    { Public declarations }
  end;{ The type declaration of the form ends here }
var
  Form1: TForm1;
implementation{ Beginning of implementation part }
{$R *.dfm}
end.{ End of implementation part and unit}

Le nouveau type de classe est TForm1, il dérive du type TForm, qui est également une classe.

Une classe ressemble à un enregistrement car tous les deux contiennent des champs de données, mais une classe contient également des méthodes (du code agissant sur les données de l'objet). Pour le moment, TForm1 semble ne contenir ni champs, ni méthodes car vous n'avez ajouté à la fiche aucun composant (les champs du nouvel objet) et vous n'avez pas créé de gestionnaires d'événements (les méthodes du nouvel objet). TForm1 contient les champs et méthodes hérités même s'ils n'apparaissent pas dans la déclaration de type.

La déclaration de variable suivante déclare une variable nommée Form1 ayant le nouveau type TForm1.

var
  Form1: TForm1;

Form1 représente une instance, ou objet, du type de classe TForm1. Vous pouvez déclarer plusieurs instances d'un type de classe ; par exemple, pour créer plusieurs fenêtres enfant dans une application utilisant l'interface d'une application à documents multiples (MDI). Chaque instance a ses données propres, mais elle utilise le même code pour exécuter les méthodes.

Bien que vous n'ayez encore ajouté aucun composant à la fiche ni écrit de code, vous disposez déjà d'une application d'interface utilisateur graphique complète que vous pouvez compiler et exécuter. Cette application se contente d'afficher une fiche vide.

Vous pouvez alors ajouter un composant bouton à la fiche et écrire un gestionnaire d'événement OnClick qui modifie la couleur de la fiche quand l'utilisateur clique sur le bouton. Le résultat a l'aspect suivant :

Une fiche simple

Green.jpg

Quand l'utilisateur clique sur le bouton, la couleur de la fiche passe au vert. Voici le code du gestionnaire d'événement pour l'événement OnClick du bouton :

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form1.Color := clGreen;
end;

Un objet peut contenir d'autres objets dans ses champs de données. A chaque fois que vous placez un composant dans une fiche, un nouveau champ apparaît dans la déclaration de type de la fiche. Si vous créez l'application qui vient d'être décrite et examinez le code dans l'éditeur de code, vous trouverez :

unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;
type
  TForm1 = class(TForm)
    Button1: TButton;{ New data field }
    procedure Button1Click(Sender: TObject);{ New method declaration }
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);{ The code of the new method }
begin
  Form1.Color := clGreen;
end;
end.

TForm1 possède un champ Button1 qui correspond au bouton que vous avez ajouté à la fiche. TButton est du type classe, de sorte que Button1 fait référence à un objet.

Tous les gestionnaires d'événements que vous écrivez dans l'EDI sont des méthodes de l'objet fiche. Chaque fois que vous créez un gestionnaire d'événement, une méthode est déclarée dans le type de l'objet fiche. Le type TForm1 contient maintenant une nouvelle méthode, la procédure Button1Click, déclarée à l'intérieur de la déclaration de type de TForm1. Le code qui implémente la méthode Button1Click apparaît dans la partie implémentation de l'unité.

Voir aussi