Sisään Delfoi, menetelmä on toimenpide tai toiminto, joka suorittaa operaation objektille. Luokkamenetelmä on menetelmä, joka toimii luokkaviitteessä objektiviitteen sijasta.
Jos luet rivien välillä, huomaat, että luokkamenetelmät ovat käytettävissä, vaikka et olisi luonut luokan esiintymää (objektia).
Luokkamenetelmät vs. Objektimenetelmät
Joka kerta kun luot Delphi-komponentti dynaamisesti, käytät luokkamenetelmää: rakentaja.
Luo rakentaja on luokan menetelmä, toisin kuin käytännöllisesti katsoen kaikki muut menetelmät, joita kohtaat Delphi-ohjelmoinnissa, jotka ovat objektimenetelmiä. Luokkamenetelmä on luokan menetelmä, ja riittävästi, objektimenetelmä on menetelmä, jota voidaan kutsua luokan ilmentymällä. Tätä kuvaa parhaiten esimerkki, jossa luokat ja esineet on korostettu punaisella selvyyden vuoksi:
myCheckbox: = TCheckbox. Luo (nolla);
Luo-kutsua edeltää tässä luokan nimi ja ajanjakso ("TCheckbox"). Se on luokan menetelmä, joka tunnetaan yleisesti rakentajana. Tämä on mekanismi, jolla luokan esiintymät luodaan. Tuloksena on esimerkki TCheckbox-luokasta. Näitä tapauksia kutsutaan objekteiksi. Kontrasti edellinen koodirivi seuraavalla:
myCheckbox. maalaa;
Täällä kutsutaan TCheckbox-kohteen uudelleenpainomenetelmää (peritty TWinControlilta). Uusintamaalauskutsua edeltää objektimuuttuja ja piste ("myCheckbox").
Luokkamenetelmiä voidaan kutsua ilman luokan esiintymää (esim. "TCheckbox. Luoda"). Luokkamenetelmiä voidaan kutsua myös suoraan objektista (esim. "MyCheckbox"). Luokan nimi"). Objektimenetelmiä voidaan kutsua kuitenkin vain luokan esiintymistä (esim. "MyCheckbox. Maalata ").
Kulissien takana Luo rakentaja on muistin varaaminen kohteelle (ja suorittamalla mahdolliset lisäalustukset TCheckboxin tai sen esi-isien määrittelemällä tavalla).
Kokeile omilla luokan menetelmillä
Ajattele AboutBoxia (mukautettu "About this Application" -lomake). Seuraava koodi käyttää jotain:
menettely TfrMain.mnuInfoClick (Lähettäjä: TObject);Tämä on tietysti erittäin mukava tapa tehdä työ, mutta vain koodin lukemisen (ja hallinnan) helpottamiseksi olisi paljon tehokkaampaa muuttaa se seuraavaan:
alkaa
AboutBox: = TAboutBox. Luo (nolla);
yrittää
AboutBox. ShowModal;
vihdoin
AboutBox. release;
end;
end;
menettely TfrMain.mnuInfoClick (Lähettäjä: TObject);Yllä oleva rivi kutsuu TAboutBox-luokan "ShowYourself" luokan menetelmää. "ShowYourself" on merkittävä avainsanalla "luokka":
alkaa
TAboutBox. Näytä itsesi;
end;
luokkamenetelmä TAboutBox. Näytä itsesi;
alkaa
AboutBox: = TAboutBox. Luo (nolla);
yrittää
AboutBox. ShowModal;
vihdoin
AboutBox. release;
end;
end;
Asiat, jotka tulee pitää mielessä
- Luokkamenetelmän määritelmään on sisällytettävä varattu sanaluokka ennen määritelmää alkavaa menettelytapaa tai funktio-avainsanaa.
- AboutBox-lomaketta ei luoda automaattisesti (projekti-asetukset).
- Laita AboutBox-yksikkö päälomakkeen käyttölausekkeeseen.
- Muista ilmoittaa menettely AboutBox-yksikön käyttöliittymän (julkisessa) osassa.