Sisse Delphi, meetod on protseduur või funktsioon, millega teostatakse objektil toiming. Klassimeetod on meetod, mis toimib objekti viite asemel klassi viitega.
Kui loete ridade vahelt, leiate, et klassimeetodid on juurdepääsetavad ka siis, kui te pole klassi (objekti) eksemplari loonud.
Klassi meetodid vs. Objekti meetodid
Iga kord, kui loote Delphi komponent dünaamiliselt, kasutate klassimeetodit: ehitaja.
Loo konstruktor on klassimeetod, erinevalt praktiliselt kõigist muudest meetoditest, mida Delphi programmeerimisel ette näed, mis on objekti meetodid. Klassimeetod on klassi meetod ja piisavalt, objektmeetod on meetod, mida võib kutsuda klassi eksemplar. Seda illustreerib kõige paremini näide, kus klassid ja objektid on selguse huvides punasega esile tõstetud:
myCheckbox: = TCheckbox. Loo (null);
Loodamiskutsele eelnevad siin klassi nimi ja periood ("TCheckbox."). See on klassi meetod, mida üldiselt tuntakse ehitajana. See on mehhanism, mille abil klassi eksemplarid luuakse. Tulemuseks on TCheckboxi klassi eksemplar. Neid juhtumeid nimetatakse objektideks. Kontrastige eelmine koodirida järgmisega:
myCheckbox. Uuesti värvida;
Siin nimetatakse TCheckboxi objekti (päritud ettevõttelt TWinControl) Repaint-meetodit. Ümberkutsumisele eelneb objekti muutuja ja periood ("myCheckbox.").
Klassimeetodeid saab kutsuda ilma klassi esinemisjuhuta (nt "TCheckbox. Loo "). Klassimeetodeid saab kutsuda ka otse objektist (nt „myCheckbox. Klassi nimi "). Objektimeetodeid saab kutsuda ainult klassi eksemplar (nt "myCheckbox. Ümber värvida ").
Kulisside taga on Loo konstruktor mälu eraldamine objekti jaoks (ja mis tahes täiendava initsialiseerimise teostamine vastavalt TCheckboxi või selle esivanemate määratlusele).
Katsetage oma klassimeetoditega
Mõelge AboutBoxile (kohandatud vorm "Selle rakenduse kohta"). Järgmine kood kasutab midagi sellist:
protseduur TfrMain.mnuInfoClick (saatja: TObject);See on muidugi väga tore viis töö tegemiseks, kuid lihtsalt selleks, et koodi oleks kergem lugeda (ja hallata), oleks palju tõhusam muuta see järgmiseks:
alustada
AboutBox: = TAboutBox. Loo (null);
proovida
AboutBoxist. ShowModal;
lõpuks
AboutBoxist. Vabasta;
lõpp;
lõpp;
protseduur TfrMain.mnuInfoClick (saatja: TObject);Ülaltoodud rida nimetab TAboutBoxi klassi meetodit "ShowYourself". "ShowYourself" tuleb märkida märksõnaga "klass":
alustada
TAboutBox. Näita ennast;
lõpp;
klassiprotseduur TAboutBox. Näita ennast;
alustada
AboutBox: = TAboutBox. Loo (null);
proovida
AboutBoxist. ShowModal;
lõpuks
AboutBoxist. Vabasta;
lõpp;
lõpp;
Asjad, mida tuleks meeles pidada
- Klassimeetodi määratlus peab sisaldama reserveeritud sõna klassi enne protseduuri või funktsiooni märksõna, mis määratlust käivitab.
- AboutBoxi vormi ei loota automaatselt (projektivalikud).
- Pange AboutBoxi üksus põhivormi kasutusklausli juurde.
- Ärge unustage protseduuri deklareerida AboutBox-üksuse liidese (avalik) osas.