Iekšā Delfi, metode ir procedūra vai funkcija, kas veic operāciju ar objektu. Klases metode ir metode, kas darbojas ar klases atsauci, nevis objekta atsauci.
Ja lasāt starp rindām, jūs redzēsit, ka klases metodes ir pieejamas pat tad, ja neesat izveidojis klases (objekta) instanci.
Klases metodes vs. Objektu metodes
Katru reizi, kad izveidojat Delphi komponents dinamiski, jūs izmantojat klases metodi: konstruktors.
Izveidot konstruktoru ir klases metode, pretstatā praktiski visām citām metodēm, ar kurām jūs sastapsities Delphi programmēšanā, kas ir objekta metodes. Klases metode ir klases metode, un, attiecīgi, objekta metode ir metode, kuru var izsaukt klases piemērs. To vislabāk parāda piemērs, skaidrības labad klases un objekti izceļot sarkanā krāsā:
myCheckbox: = TCheckbox. Izveidot (nulle);
Šeit pirms izsaukuma izveidot ir klases nosaukums un periods ("TCheckbox"). Tā ir klases metode, plaši pazīstama kā konstruktors. Šis ir mehānisms, ar kura palīdzību tiek izveidoti klases gadījumi. Rezultāts ir TCheckbox klases piemērs. Šos gadījumus sauc par objektiem. Kontrastējiet iepriekšējo koda rindu ar šādu:
myCheckbox. Pārkrāsot;
Šeit tiek saukta TCheckbox objekta (mantota no TWinControl) Repaint metode. Pirms zvana uz Pārkrāsošanu ir objekta mainīgais un periods ("myCheckbox").
Klases metodes var izsaukt bez klases eksemplāra (piem., TCheckbox. Izveidot "). Klases metodes var izsaukt arī tieši no objekta (piemēram, “myCheckbox. Klases nosaukums "). Tomēr objekta metodes var izsaukt tikai ar klases eksemplāru (piemēram, “myCheckbox. Pārkrāsot ").
Aiz ainas ir Izveidot konstruktors atmiņas piešķiršana objektam (un veicot jebkuru papildu inicializāciju, kā norādījis TCheckbox vai tā senči).
Eksperimentēšana ar savām klases metodēm
Padomājiet par AboutBox (pielāgota forma “Par šo pieteikumu”). Šis kods izmanto kaut ko līdzīgu:
procedūra TfrMain.mnuInfoClick (Sūtītājs: TObject);Tas, protams, ir ļoti jauks veids, kā veikt šo darbu, bet, tikai lai kods būtu vieglāk lasāms (un pārvaldāms), būtu daudz efektīvāk to mainīt uz:
sākt
AboutBox: = TAboutBox. Izveidot (nulle);
mēģiniet
ParBox. ShowModal;
beidzot
ParBox. Atlaidiet;
beigas;
beigas;
procedūra TfrMain.mnuInfoClick (Sūtītājs: TObject);Iepriekš minētā līnija sauc par TAboutBox klases metodi "ShowYourself". “ShowYourself” ir jāmarķē ar atslēgvārdu “klase":
sākt
TAboutBox. Parādīt sevi;
beigas;
klases procedūra TAboutBox. Parādīt sevi;
sākt
AboutBox: = TAboutBox. Izveidot (nulle);
mēģiniet
ParBox. ShowModal;
beidzot
ParBox. Atlaidiet;
beigas;
beigas;
Lietas, kas jāpatur prātā
- Klases metodes definīcijā jāiekļauj rezervētā vārdu klase pirms procedūras vai funkcijas atslēgvārda, kas sāk definīciju.
- AboutBox forma netiek automātiski izveidota (projekta opcijas).
- Ievietojiet AboutBox vienību pamatformas lietošanas klauzulā.
- Neaizmirstiet deklarēt procedūru AboutBox vienības interfeisa (publiskajā) daļā.