Razumijevanje metoda klase Delphi

U Delphi, metoda je postupak ili funkcija koja izvodi operaciju na nekom objektu. Metoda klase je metoda koja djeluje na referencu klase umjesto reference na objekt.

Ako čitate između redaka, ustanovit ćete da su metode klase dostupne i kada niste stvorili instancu klase (objekta).

Metode klase vs. Metode predmeta

Svaki put kada stvorite Delphi komponenta dinamički, koristite metodu klase: Konstruktor.

Konstruktor Stvori metoda je klase, za razliku od gotovo svih drugih metoda na koje ćete naići u programiranju Delphija, a to su objektne metode. Metoda klase je metoda klase, a na odgovarajući način, objektna metoda je metoda koju može nazvati instanca klase. To najbolje ilustrira primjer, za koje su klase i predmeti istaknuti crvenom bojom radi jasnoće:

myCheckbox: = TCheckbox. Stvoriti (nula);

Ovdje pozivu za kreiranje prethodi naziv klase i razdoblje ("TCheckbox."). To je metoda klase, obično poznata kao konstruktor. Ovo je mehanizam pomoću kojeg se stvaraju primjerci klase. Rezultat je instanca klase TCheckbox. Te se instance nazivaju objektima. Uporedite prethodni redak koda sa sljedećim:

instagram viewer

myCheckbox. Prefarbati;

Ovdje se zove Repaint metoda TCheckbox (naslijeđena od TWinControl). Pozivu Repaint prethodi objektna varijabla i razdoblje ("myCheckbox.").

Metode klase mogu se nazvati bez instancije klase (npr., "TCheckbox. Stvoriti"). Metode klase se također mogu pozvati izravno iz objekta (npr., "MyCheckbox. ClassName "). No, objektne metode mogu se pozvati samo instanca klase (npr., "MyCheckbox. Prefarbati").

Iza kulisa stoji konstruktor Create raspoređivanje pamćenja za objekt (i obavljanje bilo koje dodatne inicijalizacije kako je specificirano od TCheckboxa ili njegovih predaka).

Eksperimentiranje sa vlastitim metodama klase

Razmislite o AboutBoxu (prilagođeni obrazac "O ovoj aplikaciji"). Sljedeći kod koristi nešto poput:

postupak TfrMain.mnuInfoClick (pošiljalac: TObject);
početi
AboutBox: = TAboutBox. Stvoriti (nula);
probati
AboutBox. ShowModal;
konačno
AboutBox. pustite;
kraj;
kraj;
To je, naravno, vrlo lijep način obavljanja posla, ali samo da biste kôd lakše čitali (i upravljali), bilo bi mnogo učinkovitije promijeniti ga u:
postupak TfrMain.mnuInfoClick (pošiljalac: TObject);
početi
TAboutBox. Pokaži se;
kraj;
Gornji redak naziva metodu klase "ShowYourself" klase TAboutBox. "ShowYourself" mora biti označen ključnom riječi "klasa":
razredni postupak TAboutBox. Pokaži se;
početi
AboutBox: = T AboutBox. Stvoriti (nula);
probati
AboutBox. ShowModal;
konačno
AboutBox. pustite;
kraj;
kraj;

Stvari koje treba imati na umu

  • Definicija metode klase mora sadržavati rezerviranu klasu riječi prije postupka ili ključne riječi koja pokreće definiciju.
  • Obrazac AboutBox nije automatski stvoren (projektne mogućnosti).
  • Stavite AboutBox jedinicu na klauzulu upotrebe glavnog obrasca.
  • Ne zaboravite proglasiti postupak u (javnom) dijelu AboutBox jedinice.
instagram story viewer