U samom srcu Delphi-ja leži hijerarhija klasa. Svaka klasa u tom sistemu predstavlja potklasu osnovne TObject klase, tako da cela hijerarhija polazi iz jednog korena. Ovo vam dozvoljava da TObject tip podatka koristite kao zamenu za tip podatka bilo koje klase u sistemu. Na primer, upravljači događajima (event handler-i) uobičajeno poseduju Sender parametar tipa TObject. Ovo jednostavno znači da objekat Sender može biti bilo koja klasa pošto je svaka klasa derivat TObject klase. Ipak, mana ovakvog pristupa može biti to što treba da poznajete tip podatka datog objekta da biste radili sa njim (da biste ga upotrebljavali). U stvari, kada imate varijablu ili parametar TObject tipa, na njih možete primeniti samo metode i osobine koje su definisane za klasu TObject. Ukoliko se desi da varijabla ili parametar pripadaju objektu tipa TButton, na primer, nećete moći direktno da pristupite, recimo, osobini Caption. Rešenje za ovaj problem leži u činjenici da svaki objekat „zna“ sopstvenu klasu, te ovoj informaciji možete pristupiti koristeći metode ClassType i ClassName.
Na primer, metod ClassName vraća string sa nazivom klase. Pošto je ovo metod klase, možete ga primeniti i na objekat i na klasu. Pretpostavimo da imate definisanu klasu TButton i objekat te klase – Button1. U tom slučaju sledeći iskazi imaju isti efekat:
Text := Button1.ClassName;
Text := TButton.ClassName;
Postoje okolnosti kada je potrebno da koristite naziv klase, ali takođe može biti korisno i da vratite reference same klase ili njene osnovne klase. Referenca klase vam dopušta da operišete klasom tokom run-time-a, dok je na drugoj strani naziv klase samo string. Reference klase možete dobiti korišćenjem metoda ClassType i ClassParent. Jednom kada dobijete reference klase, možete je koristiti kao da je u pitanju objekat – za, na primer, pozivanje metode ClassName.
Pratite Krstaricu na www.krstarica.com