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