In Delphi is een methode een procedure of functie die een bewerking op een object uitvoert. Een klassenmethode is een methode die werkt op een klassenverwijzing in plaats van een objectverwijzing.
Als u tussen de regels leest, zult u merken dat de klassenmethoden toegankelijk zijn, zelfs als u geen instantie van de klasse (het object) hebt gemaakt.
Telkens wanneer u dynamisch een Delphi-component maakt, gebruikt u een klassemethode: de Constructor.
De Create-constructor is een klassemethode, in tegenstelling tot vrijwel alle andere methoden die u tegenkomt in Delphi-programmering, die objectmethoden zijn. Een klassemethode is een methode van de klasse, en passend genoeg is een objectmethode een methode die door een instantie van de klasse kan worden aangeroepen. Dit wordt het best geïllustreerd door een voorbeeld, met klassen en objecten die voor de duidelijkheid rood zijn gemarkeerd:
myCheckbox: = TCheckbox.Create (nihil);
Hier wordt de aanroep naar Create voorafgegaan door de klassenaam en een punt ("TCheckbox."). Het is een methode van de klasse, algemeen bekend als een constructor. Dit is het mechanisme waarmee instanties van een klasse worden gemaakt. Het resultaat is een exemplaar van de klasse TCheckbox. Deze instanties worden objecten genoemd. Vergelijk de vorige coderegel met het volgende:
myCheckbox.Repaint;
Hier wordt de methode Repaint van het TCheckbox-object (overgenomen van TWinControl) genoemd. De aanroep naar Repaint wordt voorafgegaan door de objectvariabele en een punt ("myCheckbox.").
Class-methoden kunnen worden aangeroepen zonder een instantie van de class (bijvoorbeeld 'TCheckbox.Create'). Class-methoden kunnen ook rechtstreeks vanuit een object worden aangeroepen (bijvoorbeeld "myCheckbox.ClassName"). Objectmethoden kunnen echter alleen worden aangeroepen door een instantie van een klasse (bijvoorbeeld 'myCheckbox.Repaint').
Achter de schermen wijst de Create-constructor geheugen toe voor het object (en voert hij eventuele extra initialisatie uit zoals gespecificeerd door TCheckbox of zijn voorouders).
Denk aan AboutBox (een aangepast formulier 'Over deze toepassing'). De volgende code gebruikt zoiets als:
procedure TfrMain.mnuInfoClick (afzender: TObject);Dit is natuurlijk een erg leuke manier om het werk te doen, maar alleen om de code gemakkelijker te lezen (en te beheren) te maken, zou het veel efficiënter zijn om deze te wijzigen in:
beginnen
AboutBox: = TAboutBox.Create (nul);
proberen
AboutBox.ShowModal;
Tenslotte
AboutBox.Release;
einde;
einde;
procedure TfrMain.mnuInfoClick (afzender: TObject);De bovenstaande regel roept de methode "ShowYourself" van de klasse TAboutBox aan. De "ShowYourself" moet worden gemarkeerd met het trefwoord "klasse":
beginnen
TAboutBox.ShowYourself;
einde;
klasseprocedure TAboutBox.ShowYourself;
beginnen
AboutBox: = TAboutBox.Create (nul);
proberen
AboutBox.ShowModal;
Tenslotte
AboutBox.Release;
einde;
einde;