Object Позволяет данным типа подпрограмм обращаться к методу объекта
TObject Тип базового класса, который является предком для всех других классов
Пример кода : Иллюстрация использования is на иерархии класса
// Полный код Модуля. // ----------------------------------------------------------- // Вы должны поместить этот код в модуль с именем Unit1 и с формой // названную Form1, которая имеет событие OnCreate названное FormCreate.
unit Unit1;
interface
uses
Forms, Dialogs, Classes, Controls, StdCtrls;
type // Определение нового типа класса
TFruit = class
public
name : string;
published
constructor Create(name : string);
end; // Определение двух порожденных типа
TApple = class(TFruit);
TPear = class(TFruit);
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm} // Include form definitions // Создание объекта fruit
constructor TFruit.Create(name: string);
begin
self.name := name;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
fruit : TFruit;
apple : TApple;
pear : TPear;
begin // Создание двух разных объектов fruit
apple := TApple.Create('Pink Lady');
pear := TPear.Create('Comice'); // Они оба TFruit или порожденные типы
if apple Is TFruit then ShowMessage(apple.name +' - fruit');
if pear Is TFruit then ShowMessage(pear.name +' - fruit'); // Apple также является типом TApple
fruit := apple;
if fruit Is TApple then ShowMessage(apple.name +' - apple'); // Но яблоко не является грушей if fruit Is TPear // 'if apple is TPear' не скомпилируется
then ShowMessage(apple.name+' - pear')
else ShowMessage(apple.name+' - не является pear');
end;
end.
Pink lady - fruit
Comice - fruit
Pink lady - apple
Pink lady - не является pear