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