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