Conseils

Comprendre les méthodes de classe Delphi

Comprendre les méthodes de classe Delphi



We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

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 opère sur une référence de classe au lieu d'une référence à un 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 et méthodes d'objet

Chaque fois que vous créez un composant Delphi de manière dynamique, 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 rencontrées 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 objet est une méthode pouvant ê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. C'est le 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. Contrastez 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 à Repaint est précédé de la variable d'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"). Toutefois, les méthodes d'objet ne peuvent être appelées que par une instance d'une classe (par exemple, "myCheckbox.Repaint").

En coulisse, le constructeur Create alloue de la mémoire à l'objet (et effectue toute initialisation supplémentaire spécifiée 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:

procedure TfrMain.mnuInfoClick (Sender: TObject);
commencer
AboutBox: = TAboutBox.Create (nil);
essayer
AboutBox.ShowModal;
enfin
AboutBox.Release;
fin;
fin;Ceci, bien sûr, 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 pour:

procedure TfrMain.mnuInfoClick (Sender: TObject);
commencer
TAboutBox.ShowYourself;
fin;La ligne ci-dessus appelle la méthode de la classe "ShowYourself" de la classe TAboutBox. Le "ShowYourself" doit être marqué avec le mot clé "classe":

procédure de classe TAboutBox.ShowYourself;
commencer
AboutBox: = TAboutBox.Create (nil);
essayer
AboutBox.ShowModal;
enfin
AboutBox.Release;
fin;
fin;

Choses à garder à l'esprit

  • La définition d'une méthode de classe doit inclure le mot réservé class avant le mot-clé procédure ou fonction qui lance la définition.
  • Le formulaire AboutBox n'est pas créé automatiquement (Options de projet).
  • 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.