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:
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);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:
početi
AboutBox: = TAboutBox. Stvoriti (nula);
probati
AboutBox. ShowModal;
konačno
AboutBox. pustite;
kraj;
kraj;
postupak TfrMain.mnuInfoClick (pošiljalac: TObject);Gornji redak naziva metodu klase "ShowYourself" klase TAboutBox. "ShowYourself" mora biti označen ključnom riječi "klasa":
početi
TAboutBox. Pokaži se;
kraj;
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.