Разместите нашу кнопку!

Новые статьи:

Programming articles

Создание сайтов на шаблонах

Множество вариантов работы с графикой на канве

Шифруем файл с помощью другого файла

Перехват API функций - Основы

Как сделать действительно хороший сайт

Создание почтового клиента в Delphi 7

Применение паскаля для решения геометрических задач

Управление windows с помощью Delphi

Создание wap сайта

Операционная система unix, термины и понятия

SQL враг или друг

Возникновение и первая редакция ОС UNIX

Оптимизация проекта в Delphi

Ресурсы, зачем нужны ресурсы

Термины программистов 20 века

Советы по созданию собственного сайта с нуля

Шифруем файл с помощью пароля

Фракталы - геометрия природы

Crypt - Delphi программа для шифрования

Рассылка, зачем она нужна и как ее организовать?

Учебник по C++ для начинающих программистов

Уроки для изучения ассемблера

Загадочный тип PCHAR

Средства по созданию сайтов

Операторы преобразования классов is и as

Borland Developer studio 2006. Всё в одном

Создание базы данных в Delphi, без сторонних БД


Software engineering articles



As

преобразовывает один класс в другой

  1. Object reference as Class type
  2. Object reference | Interface reference as Interface type

Описание:

    Ключевое слово As используется для приведения типа объектов или интерфейсов от одного типа к другому.

     Приведение типа позволяет ссылаться на объект как на объекты с типом класса-предка. Например, на все объекты можно ссылаться как на объекты с типом класса TObject:

     button1 := Button1 as TObject;

     Если объект уже был приведен к типу класса-предка, то приведение к корректному типу класса-потомка позволительно. Код примера показывает это для объекта класса TForm, когда он передается как объект типа TObject в методе OnCreate формы.

Пример кода:

var
   myForm : TForm;
   myForm1 : TForm1;

   myByte : Byte;
   myChar : Char;

begin
   myByte := 65;

   // Cast this Byte to Char using the standard casting method
   myChar := Char(myByte);
   ShowMessage('myByte standard casting to Char = '+myChar);

   // Cast the Form to myForm using standard casting
   myForm := TForm1(Sender);
   ShowMessage('Sender using standard casting = '+myForm.Caption);

   // Cast the form using the as keyword
   myForm := Sender As TForm;
   ShowMessage('Sender as valid child = '+myForm.Caption);

   myForm := Sender As TForm1;
   ShowMessage('Sender as itself = '+myForm.Caption);

   // Create a new TForm object rather than TForm1
   myForm := TForm.Create(self);
   myForm.Caption := 'New form';

   // Standard casting does no checking if we cast TForm to TForm1
   myForm1 := TForm1(myForm);
   ShowMessage('Standard casting to bad child = '+myForm1.Caption);

   // Casting using 'as' rejects object to invalid child casting
   myForm1 := myForm As TForm1;
   // The following yields the EInvalidCast error
   ShowMessage('As casting to bad type = '+myForm1.Caption);
end;

Результат выполнения:

myByte standard casting to Char = A
Sender using standard casting = Form1
Sender as valid child = Form1
Sender as itself = Form1
Standard casting to bad child = New form

EInvalidCast error : 'Invalid cast type'