Delphi справочник - Форум программистов - Навигация  
 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      По первой букве  
System     SysUtils     StrUtils     DateUtils     FileCtrl     ConvUtils     StdConvs     Math     Classes     Dialogs     Types     Variants    ПО Unit   Compiler directives     Directives     Keywords     Types     Variables     Constants     Functions     Procedures    По категории  

форум программистов

Основы Delphi
Is
Ключевое слово
Проверяет, является ли объект потомком класса или его родителем unit
  Object reference Is Class reference
Описание
Ключевое слово 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
 


Оплата за обучение в Kata Academy только после твоего трудоустройства в IT, начни карьеру Middle Java-разработчика



Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки? Slurm подготовили для вас особенный продукт!





форум программистов


© Форум Delphi  |  Форум Pascal   |  Блог программистов   |  Исходники Delphi   |  Автор сайта  |  Ссылки   |  Английская версия