Delphi-luokan menetelmien ymmärtäminen

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:

instagram viewer

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);
alkaa
AboutBox: = TAboutBox. Luo (nolla);
yrittää
AboutBox. ShowModal;
vihdoin
AboutBox. release;
end;
end;
Tämä on tietysti erittäin mukava tapa tehdä työ, mutta vain koodin lukemisen (ja hallinnan) helpottamiseksi olisi paljon tehokkaampaa muuttaa se seuraavaan:
menettely TfrMain.mnuInfoClick (Lähettäjä: TObject);
alkaa
TAboutBox. Näytä itsesi;
end;
Yllä oleva rivi kutsuu TAboutBox-luokan "ShowYourself" luokan menetelmää. "ShowYourself" on merkittävä avainsanalla "luokka":
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.