请问一个类引用的问题(10分)

  • 主题发起人 主题发起人 awfigsk
  • 开始时间 开始时间
A

awfigsk

Unregistered / Unconfirmed
GUEST, unregistred user!
type
TControlClass=class of TControl;
...
function CreateControl(ControlClass:TControlClass;const ControlName:string;
x,y,w,h:integer):TControl;
begin
Result:=ControlClass.Create(MainForm);
with Result do
begin
Parent:=MainForm;
Name:=ControlName;
SetBounds(x,y,w,h);
visible:=True;
end;
end;
创建一个TButton类型的控件对象:
var
Btn:TButton;
begin
Btn:=CreateControl(TButton,'Button1',0,0,100,20);
....
end;
我想请问,在函数CreateControl的形参中ControlClass的类型为什么
不直接定义为TControl?而要用类引用TcontrolClass呢?这里可以直接用
TControl吗?谢谢!
 
不行,直接定义是类的事例变量,并不是类本身,类引用相当于指向类的变量
 
行,tcontrol是类类型,tcontrolclass也是类类型。而tcontrolclass 兼容tcontrol (即
tcontrolclass 的实例可以调用tcontrol 的方法)。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
455
import
I
I
回复
0
查看
720
import
I
I
回复
0
查看
665
import
I
后退
顶部