Справочник функций и процедур Delphi: Is

  Навигация по первой букве:

A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z

  Навигация по категории:

Compiler directives, Directives, Keywords / Types, Variables, Constants / Functions, Procedures

  Реклама:

 

Is
Ключевое слово
Проверяет, является ли объект потомком класса или его родителем unit
  Object reference Is Class reference

Google  
 
Описание
Ключевое слово 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
 


Copyright © 2004-2016 Delphi Sources (источник – "DelphiBasics.ru")
 


Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook