Izpratne par Delphi klases metodēm

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:

instagram viewer

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);
sākt
AboutBox: = TAboutBox. Izveidot (nulle);
mēģiniet
ParBox. ShowModal;
beidzot
ParBox. Atlaidiet;
beigas;
beigas;
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:
procedūra TfrMain.mnuInfoClick (Sūtītājs: TObject);
sākt
TAboutBox. Parādīt sevi;
beigas;
Iepriekš minētā līnija sauc par TAboutBox klases metodi "ShowYourself". “ShowYourself” ir jāmarķē ar atslēgvārdu “klase":
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ļā.
instagram story viewer