Cum se obține accesul la câmpul de clasă (privat) de la obișnuit.
Procedura descrisă în același modul ca și clasa.
Subiectul.
Dacă procedura se află în același modul ca și descrierea clasei, atunci problemele, la fel, nu ar trebui să fie. Poți fi blestemat în modul obișnuit.
Un pic pleacă de la câmpuri în direcția metodelor de clasă.
tip
TMyClass = clasa
# xA0; # xA0; public
# xA0; # xA0; # xA0; Funcția # xA0; MyFunc (A: integer): integer;
se încheie;
În același modul, există o procedură obișnuită:
funcția AnotherFunc (A: integer): integer;
începe
TMyClass.MyFunc (A); // Aș dori să fac ceva despre asta
se încheie;
Apare o eroare: această formă de apel a permis numai metode de clasă
Cum sa fii?
> Procedura trebuie să fie un membru al clasei, nu doar a
> se află în același modul.
Nu ar trebui.
TMyClass = clasa
..
# xA0; public
# xA0; # xA0; # xA0; funcția de clasă MyFunc (A: integer): integer;
..
Ok funcționează, dar din nou există o problemă:
tip
TMyClass = clasa
# xA0; # xA0; privat
# xA0; # xA0; # xA0; FB: întreg;
# xA0; # xA0; protejate
# xA0; # xA0; # xA0; proprietatea B: integer read FB scrie FB;
# xA0; # xA0; # xA0; funcția de clasă MyFunc (A: integer): integer;
se încheie;
Ca și acum,
funcția de clasă MyFunc (A: integer): integer;
începe
# xA0; rezultat: = A + B // aici aici pentru a face?
se încheie;
Ie mergeți la o clasă protejată. Deci, aici este scrisul compilatorului că proprietatea "CurrProc" este inaccesibilă aici
PS. Peret cum să apăsați butoanele recomand să studiez teoria și să înțeleg ce vrei să faci în cele din urmă.
Încercați, încercați.