Delphi klassi meetodite mõistmine

click fraud protection

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:

instagram viewer

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);
alustada
AboutBox: = TAboutBox. Loo (null);
proovida
AboutBoxist. ShowModal;
lõpuks
AboutBoxist. Vabasta;
lõpp;
lõpp;
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:
protseduur TfrMain.mnuInfoClick (saatja: TObject);
alustada
TAboutBox. Näita ennast;
lõpp;
Ülaltoodud rida nimetab TAboutBoxi klassi meetodit "ShowYourself". "ShowYourself" tuleb märkida märksõnaga "klass":
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.
instagram story viewer