Comprendre les méthodes de classe Delphi

Dans Delphes, une méthode est une procédure ou une fonction qui effectue une opération sur un objet. Une méthode de classe est une méthode qui fonctionne sur une référence de classe au lieu d'une référence d'objet.

Si vous lisez entre les lignes, vous constaterez que les méthodes de classe sont accessibles même si vous n'avez pas créé d'instance de la classe (l'objet).

Méthodes de classe vs Méthodes d'objet

Chaque fois que vous créez un Composant Delphi dynamiquement, vous utilisez une méthode de classe: le constructeur.

Le constructeur Create est une méthode de classe, contrairement à pratiquement toutes les autres méthodes que vous rencontrerez dans la programmation Delphi, qui sont des méthodes objet. Une méthode de classe est une méthode de la classe, et de manière appropriée, une méthode d'objet est une méthode qui peut être appelée par une instance de la classe. Ceci est mieux illustré par un exemple, avec des classes et des objets surlignés en rouge pour plus de clarté:

myCheckbox: = TCheckbox. Créer (néant);
instagram viewer

Ici, l'appel à Create est précédé du nom de la classe et d'un point ("TCheckbox."). C'est une méthode de la classe, communément appelée constructeur. Il s'agit du mécanisme par lequel les instances d'une classe sont créées. Le résultat est une instance de la classe TCheckbox. Ces instances sont appelées objets. Comparez la ligne de code précédente avec ce qui suit:

myCheckbox. Repeindre;

Ici, la méthode Repaint de l'objet TCheckbox (hérité de TWinControl) est appelée. L'appel à Repeindre est précédé de la variable objet et d'un point ("myCheckbox").

Les méthodes de classe peuvent être appelées sans instance de la classe (par exemple, "TCheckbox. Créer"). Les méthodes de classe peuvent également être appelées directement à partir d'un objet (par exemple, "myCheckbox. Nom du cours"). Cependant, les méthodes d'objet ne peuvent être appelées que par une instance d'une classe (par exemple, "myCheckbox. Repeindre").

Dans les coulisses, le constructeur Create est allouer de la mémoire pour l'objet (et effectuer toute initialisation supplémentaire comme spécifié par TCheckbox ou ses ancêtres).

Expérimenter avec vos propres méthodes de classe

Pensez à AboutBox (un formulaire personnalisé "À propos de cette application"). Le code suivant utilise quelque chose comme:

procédure TfrMain.mnuInfoClick (Sender: TObject);
commencer
AboutBox: = TAboutBox. Créer (néant);
essayer
AboutBox. ShowModal;
enfin
AboutBox. Libération;
fin;
fin;
Bien sûr, c'est une très bonne façon de faire le travail, mais juste pour rendre le code plus facile à lire (et à gérer), il serait beaucoup plus efficace de le changer en:
procédure TfrMain.mnuInfoClick (Sender: TObject);
commencer
TAboutBox. Montre toi;
fin;
La ligne ci-dessus appelle la méthode de classe "ShowYourself" de la classe TAboutBox. Le "ShowYourself" doit être marqué avec le mot-clé "classe":
procédure de classe TAboutBox. Montre toi;
commencer
AboutBox: = TAboutBox. Créer (néant);
essayer
AboutBox. ShowModal;
enfin
AboutBox. Libération;
fin;
fin;

Choses à garder à l'esprit

  • La définition d'une méthode de classe doit inclure la classe de mots réservés avant le mot clé de procédure ou de fonction qui démarre la définition.
  • Le formulaire AboutBox n'est pas créé automatiquement (Project-Options).
  • Placez l'unité AboutBox dans la clause uses du formulaire principal.
  • N'oubliez pas de déclarer la procédure dans la partie interface (publique) de l'unité AboutBox.
instagram story viewer