1.3 Програмний доступ до властивостей і методів об'єктів
Іноді властивість об'єкта є в свою чергу об'єктом. Тоді в зверненні до цієї властивості вказується через точки весь ланцюжок попередніх об'єктів. Наприклад, мітки мають властивість Font - шрифт, яке в свою чергу є об'єктом. У цього об'єкта є безліч властивостей, зокрема, властивість Color - колір шрифту. Щоб послатися на колір шрифту мітки Label1. треба написати Label1.Font.Color. Це означає: властивість Color об'єкта Font. належить об'єкту Label1. Наприклад, оператор зробить напис мітки Label1 червоною.
Аналогічна нотація з точкою використовується і для доступу до методів об'єкта. Наприклад, для мітки, як і для більшості інших об'єктів, визначено метод Free. який знищує мітку і звільняє займану нею пам'ять. Якщо ви в якийсь момент вирішили знищити мітку Label1 в своєму додатку, то ви можете написати оператор
Тепер подивимося, чим різняться константи, змінні, функції і процедури, включені та не включені в опис класу.
Звернення до змінних і процедурами, описаними всередині і поза класом, з процедур, описаних поза класом, різниться. До змінних і процедурами, описаними поза класом, звернення відбувається просто за їхніми іменами, а до змінних і процедурами, описаними в класі, через ім'я об'єкта класу. Наприклад, якщо ви поза класом хочете описати якусь процедуру, яка змінює напис мітки Label1. ви повинні звернутися до її властивості Caption наступним чином: Form1.Label1.Caption. Тільки через посилання на об'єкт Form1 зовнішні по відношенню до класу процедури можуть отримати доступ до всього, оголошеному в класі.
Якщо в додатку створюється кілька об'єктів одного класу, наприклад, кілька форм класу TForm1. то виявляються найбільш важливі відмінності між змінними, описаними всередині і поза класом. Змінні поза класом так і залишаються в одному екземплярі. А змінні, описані в класі, тиражуються стільки раз, скільки об'єктів даного класу створено. Тобто в кожному об'єкті класу TForm1 будуть свої змінні, описані в класі, і їх ролі не будуть пов'язані один з одним. Таким чином, в змінну, описану всередині класу, можна заносити якусь інформацію, індивідуальну для кожного об'єкта даного класу. А змінна, описана в модулі поза описом класу, може зберігати тільки одне значення,