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
As
Ключевое слово
Используется для приведения объектных ссылок unit
  
1 Object reference as Class type

2 Object reference | Interface reference as Interface type
Описание
Ключевое слово As используется для приведения объектов или интерфейсов от одного типа к другому.

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

button1 := Button1 as TObject;

Если объект уже был приведен к родительскому типу класса, то разрешается приведение к правильному дочернему типу класса. Код примера показывает это для объекта класса TForm класса, когда он передаётся как тип TObject к методу формы OnCreate.
Примечания
Используйте ключевое слово Is для проверки качеств приведения прежде чем испытывать приведение.

При попытке использования значения недопустимого приведения оно выдает EInvalidCast.
Похожие команды
Is  Проверяет, является ли объект потомком класса или его родителем

 
Пример кода : Приведение используя традиционное приведение и приведение as
var
  myForm  : TForm;
  myForm1 : TForm1;

  myByte  : Byte;
  myChar  : Char;

begin
  myByte := 65;

  // Приведение этого Byte к Char, используя стандартный метод приведения
  myChar := Char(myByte);
  ShowMessage('Стандартное приведение myByte к Char = '+myChar);

  // Приведите Form к myForm, используя стандартное приведение
  myForm := TForm1(Sender);
  ShowMessage('Используя стандартное приведение Sender = '+myForm.Caption);

  // Cast the form using the as keyword
  myForm := Sender As TForm;
  ShowMessage('Sender как допустимый порожденный = '+myForm.Caption);

  myForm := Sender As TForm1;
  ShowMessage('Sender сам непосредственно = '+myForm.Caption);

  // Создание нового объекта TForm, а не TForm1
  myForm := TForm.Create(self);
  myForm.Caption := 'New form';

  // Стандартное приведение не делает никакой проверки, если мы приводим TForm к TForm1
  myForm1 := TForm1(myForm);
  ShowMessage('Стандартное приведение к неправильному порожденному = '+myForm1.Caption);

  // Приведение используя 'as' отклоняющего приведение к недопустимому дочернему объекту
  myForm1 := myForm As TForm1;
  // Следующие приведения ошибки EInvalidCast
  ShowMessage('Приведение As к плохому типу = '+myForm1.Caption);
end;
Стандартное приведение myByte к Char = A
Используя стандартное приведение Sender = Form1
Sender как допустимый порожденный = Form1
Sender сам непосредственно = Form1
Стандартное приведение к неправильному порожденному = New form

EInvalidCast error : 'Invalid cast type'
 



© Форум Delphi   |  Блог программистов   |  Создание и продвижение сайтов - "Веб сателлит"  |  Ссылки   |  Английская версия