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.
|