Оператор is

Визначення належності до класу і приведення типів об'єктів

При використанні поліморфізму нерідко треба визначити, посилання на об'єкт якого саме типу знаходиться в тій чи іншій змінній. Для вирішення завдань такого роду всі об'єкти містять інформацію про клас - так звану RTTI-інформацію (від англ. Run Time Type Information - інформація часу виконання про тип), для доступу до якої у всіх класах є методи, успадковані ними від класу TObject. Однак використання цих методів не рекомендується розробником, а замість них передбачений оператор is, що перевіряє приналежність об'єкта до заданого класу.

Оператор is повертає логічне значення (True або False) і використовується в наступному вигляді:

<Посилання на об'єкт> is <Назва класу>

Проіллюструємо використання оператора is на прикладі модуля (лістинг 5.17), що під’єднує до себе модуль р:. розроблений у попередньому прикладі. Реалізуємо процедуру, яка отримує як параметр посилання на екземпляр класу TGeomFigure, і визначає, чи не належить об'єкт, на який реально вказує посилання, до класу TLine. Якщо об'єкт є екземпляром класу TLine, то викличемо його метод Draw, в протилежному випадку процедура повинна завершитися.