Object reference Is Class reference
Ключевое слово Is используется, чтобы проверить, принадлежит ли объект классу, или является его родителем.
Например, вы можете проверить, чем является графический компонент TButton, или TList, или ни тем, ни другим.
Все объекты принадлежат классу TObject, из которого они, в конечном счете, получены.
|
// Полный код Модуля.
// -----------------------------------------------------------
// Вы должны поместить этот код в модуль с именем 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.
|