Справочник функций и процедур 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

Delphi Sources

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


Последние добавленные на сайт исходники

DeLiKaTeS Tetris (Тетрис)

TDictionary Custom Sort

Fast Watermark Sources

3D Designer

Sik Screen Capture

Patch Maker

 

Айболит (remote control)

ListBox Drag & Drop

Доска для игры Реверси

Графические эффекты

Рисование по маске

Перетаскивание изображений

 

Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software (источник – "DelphiBasics")

Группа ВКонтакте