强制类型转换,给你举个例子: // 清除窗体中所有Edit控件的内容 procedure ClearAllEditText; var iIndex: Integer; begin //遍历所有组件 for iIndex := 0 to ComponentCount - 1 do begin //看这个组件是否为Edit控件 if (Components[iIndex] is TEdit) then //已经判断出来是Edit控件,则把他强制转换为Edit控件 //这句代码也可以这样写: TEdit(Components[iIndex].Text := ''; (Components[iIndex] as TEdit).Text := ''; end; end;
但是对象变量的特征跟指针很像,比如说必须初始化(创建新的实例或者指向一个已经存在的实例,当然咯,也可以是nil)。
所谓实例就是指一块保存对象数据用的内存。当你定义一个对象变量时他不能做任何事情,因为它只是一个“指针”。在初始化后,系统就能够通过你调用的方法来访问相对的偏移量下的数据。如果没有初始化就访问对象的数据,系统会在指定的偏移量的地方读到或者写入错误的信息,此时就会出错(不过没有指针出错那么严重,至少它是由系统自动维护的)。
// 清除窗体中所有Edit控件的内容
procedure ClearAllEditText;
var
iIndex: Integer;
begin
//遍历所有组件
for iIndex := 0 to ComponentCount - 1 do begin
//看这个组件是否为Edit控件
if (Components[iIndex] is TEdit) then
//已经判断出来是Edit控件,则把他强制转换为Edit控件
//这句代码也可以这样写: TEdit(Components[iIndex].Text := '';
(Components[iIndex] as TEdit).Text := '';
end;
end;