Операція is (is operator).
Ця операція призначена для перевірки (на етапі виконання програми) того, що об'єкт належить вказаному класу. Вираз
SomeObject is TSomeClass
має значення True, якщо об'єкт SomeObject є екземпляром класу TSomeClass або якого-небудь похідного від нього класу. В іншому випадку значення виразу - False. Якщо об'єкт має значення nil, то вираз також має значення False. Якщо об'єкт SomeObject не має ніякого відношення до класу SomeClass, тобто вони мають різні типи і "не перебувають у родинних стосунках", виникає помилка етапу компіляції.
Наведемо приклад використання операції is:
if ActiveControl is TEdit then TEdit (ActiveControl). SelectAll;
Цей оператор викликає метод SelectAll (виділити весь текст) об'єкта ActiveControl, але попередньо перевіряє його приналежність класу TEdit і виконує приведення типу об'єкта до типу TEdit.
Операція as (as operator).
Ця операція введена в мову для приведення об'єктних типів. Значенням виразу
SomeObject as TSomeclass
є посилання на той самий об'єкт SomeObject, але як має тип класу TSomeClass. На етапі виконання SomeObject повинен бути екземпляром класу TSomeClass, похідного від нього класу або мати значення nil. Якщо це не так, виникає помилка (часу виконання). Аналогічно операції is, якщо об'єкт SomeObject не має ніякого відношення до класу TSomeClass, тобто вони мають різні типи і "не перебувають у родинних стосунках", виникає помилка етапу компіляції. Приклад використання операції:
with Sender as TButton do
begin Caption: = '& Ok'; OnClick: = OkClick; end;
При застосуванні операції as часто доводиться використовувати дужки, наприклад
(Sender as TButton). Caption: = '& Ok';