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