Поскольку реальный экземпляр объекта может оказаться наследником класса, указанного при описании объектной переменной или параметра, бывает необходимо проверить, к какому классу принадлежит объект на самом деле. Чтобы программист мог выполнять такого рода проверки, каждый объект хранит информацию о своем классе.
 В языке Delphi существуют операторы is и as, с помощью которых выполняется соответственно проверка на тип (type checking) и преобразование к типу (type casting).
 Например, чтобы выяснить, принадлежит ли некоторый объект Obj к классу TFigure или его наследнику, следует использовать оператор is:
   | var Obj: TObject;... if Obj is TFigure then ... | 
 
 Для преобразования объекта к нужному типу используется оператор as, например
   | with Obj as TFigure do Color:= red; | 
 
 Стоит отметить, что для объектов применим и обычный способ приведения типа:
   | with TFigure(Obj) do Color := Red; | 
 
 Вариант с оператором as лучше, поскольку безопасен. Он генерирует ошибку (точнее исключительную ситуацию при выполнении программы (run-time error)), если реальный экземпляр объекта Obj не совместим с классом TFigure.