Dans Delphi, 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).
Chaque fois que vous créez dynamiquement un composant Delphi, 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.Create (nil);
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.Repaint;
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.Create"). Les méthodes de classe peuvent également être appelées directement à partir d'un objet (par exemple, "myCheckbox.ClassName"). Cependant, les méthodes d'objet ne peuvent être appelées que par une instance d'une classe (par exemple, "myCheckbox.Repaint").
Dans les coulisses, le constructeur Create alloue de la mémoire à l'objet (et effectue toute initialisation supplémentaire comme spécifié par TCheckbox ou ses ancêtres).
Pensez à AboutBox (un formulaire personnalisé "À propos de cette application"). Le code suivant utilise quelque chose comme:
procédure TfrMain.mnuInfoClick (Sender: TObject);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:
commencer
AboutBox: = TAboutBox.Create (nil);
essayer
AboutBox.ShowModal;
enfin
AboutBox.Release;
fin;
fin;
procédure TfrMain.mnuInfoClick (Sender: TObject);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":
commencer
TAboutBox.ShowYourself;
fin;
procédure de classe TAboutBox.ShowYourself;
commencer
AboutBox: = TAboutBox.Create (nil);
essayer
AboutBox.ShowModal;
enfin
AboutBox.Release;
fin;
fin;