V Delphi, metoda je postopek ali funkcija, ki izvede operacijo na predmetu. Metoda razreda je metoda, ki deluje na referenco razreda namesto na referenco predmeta.
Če berete med vrsticami, boste ugotovili, da so metode razreda dostopne, tudi če niste ustvarili primerka razreda (objekta).
Metode razreda vs. Predmetne metode
Vsakič, ko ustvarite Delphi komponenta dinamično, uporabljate metodo razreda: Konstruktor.
Konstruktor Ustvari je metoda razreda, v nasprotju s skoraj vsemi drugimi metodami, ki jih boste srečali pri programiranju Delphija, ki so objektne metode. Metoda razreda je metoda razreda in ustrezno primerna metoda je metoda, ki jo lahko pokliče primerek razreda. To najbolje ilustrira primer z razredi in predmeti, ki so za jasnost označeni z rdečo barvo:
myCheckbox: = TCheckbox. Ustvari (nič);
Tu je pred klicem Ustvari ime razreda in obdobje ("TCheckbox."). To je metoda razreda, splošno znana kot konstruktor. To je mehanizem, s katerim so ustvarjeni primerki razreda. Rezultat je primerek razreda TCheckbox. Ti primeri se imenujejo predmeti. Primerjajte prejšnjo vrstico kode z naslednjim:
myCheckbox. Ponovno barvanje;
Tukaj se imenuje metoda Repaint objekta TCheckbox (podedovana od TWinControl). Pred klicem na Repaint je objektna spremenljivka in obdobje ("myCheckbox.").
Metode razreda lahko pokličete brez primerka razreda (npr. "TCheckbox. Ustvari "). Metode razreda lahko pokličete tudi neposredno iz predmeta (npr. "MyCheckbox. ClassName "). Objektne metode pa lahko pokliče le primerek razreda (npr. "MyCheckbox. Ponovno barvanje ").
Zakulisno stoji konstruktor Ustvari dodeljevanje spomina za objekt (in izvajanje kakršne koli dodatne inicializacije, kot jo določi TCheckbox ali njegovi predniki).
Eksperimentiranje z lastnimi metodami razreda
Pomislite na AboutBox (prilagojeni obrazec "O tej aplikaciji"). Naslednja koda uporablja nekaj takega:
postopek TfrMain.mnuInfoClick (Pošiljatelj: TObject);Seveda je to zelo prijeten način za opravljanje dela, toda samo za lažje branje (in upravljanje) kode bi bilo veliko bolj učinkovito, da jo spremenite v:
začeti
AboutBox: = T AboutBox. Ustvari (nič);
poskusi
AboutBox. ShowModal;
končno
AboutBox. Sprostitev;
konec;
konec;
postopek TfrMain.mnuInfoClick (Pošiljatelj: TObject);Zgornja vrstica imenuje metodo razreda "ShowYourself" razreda TAboutBox. "ShowYourself" mora biti označen s ključno besedo "razred":
začeti
T AboutBox. Pokaži sebe;
konec;
razredni postopek TAboutBox. Pokaži sebe;
začeti
AboutBox: = T AboutBox. Ustvari (nič);
poskusi
AboutBox. ShowModal;
končno
AboutBox. Sprostitev;
konec;
konec;
Stvari, ki jih je treba imeti v mislih
- Opredelitev metode razreda mora vključevati rezerviran razred besed pred postopkom ali funkcijsko ključno besedo, ki začne definicijo.
- Obrazec AboutBox ni samodejno ustvarjen (Project-Options).
- Postavite enoto AboutBox v klavzulo uporabe glavnega obrazca.
- Ne pozabite razglasiti postopka v vmesniku (javnem) delu enote AboutBox.