Ключевое слово As используется для приведения объектов или интерфейсов от одного типа к другому.
Приведение позволяет объекту быть упомянутым родительским типом класса. Например, все объекты могут упомянуться, как тип класса TObject :
button1 := Button1 as TObject;
Если объект уже был приведен к родительскому типу класса, то разрешается приведение к правильному дочернему типу класса. Код примера показывает это для объекта класса TForm класса, когда он передаётся как тип TObject к методу формы OnCreate. вот
|
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;
|