Création, instanciation et destruction d'objets

De RAD Studio
Aller à : navigation, rechercher

Remonter à Utilisation du modèle objet - Index

La plupart des objets que vous utilisez dans le concepteur de fiche, comme les boutons ou les zones de saisie, apparaissent à la conception et à l'exécution. Certains, comme les boîtes de dialogue standard, apparaissent uniquement à l'exécution. D'autres, comme les composants timer ou source de données, n'ont pas de représentation visuelle dans l'application à l'exécution.

Vous pouvez être amené à créer vos propres classes. Vous pouvez, par exemple, créer une classe TEmployee contenant les propriétés Name, Title et HourlyPayRate. Vous pouvez ensuite lui ajouter la méthode CalculatePay qui utilise les données du champ HourlyPayRate pour calculer le montant de la paye. La déclaration du type TEmployee peut prendre la forme suivante :

type
  TEmployee = class(TObject)
  private
    FName: string;
    FTitle: string;
    FHourlyPayRate: Double;
  public
    property Name: string read FName write FName;
    property Title: string read FTitle write FTitle;
    property HourlyPayRate: Double read FHourlyPayRate write FHourlyPayRate;
    function CalculatePay: Double;
  end;

Outre les champs, propriétés et méthodes que vous avez définis, TEmployee hérite de toutes les méthodes de TObject. Vous pouvez placer une déclaration de type comme celle-ci dans la partie interface ou implémentation d'une unité, puis créer des instances de la nouvelle classe en appelant la méthode Create que TEmployee hérite de TObject :

var
  Employee: TEmployee;
begin
  Employee := TEmployee.Create;
end;

La méthode Create est appelée un constructeur. Elle alloue la mémoire pour un objet nouvellement instancié et renvoie une référence sur l'objet.

Les composants d'une fiche sont créés et détruits automatiquement. Toutefois, si vous écrivez votre propre code pour instancier des objets, vous êtes responsable de leur libération. Chaque objet hérite à partir de TObject d'une méthode Destroy (appelée un destructeur). Néanmoins, pour détruire un objet, vous devez toujours appeler la méthode Free (également héritée de TObject) car Free cherche une référence nil avant d'appeler Destroy. Par exemple,

Employee.Free;

détruit l'objet Employee et libère sa mémoire.

Voir aussi