运行的时候,创建任意的对象

字体大小: 中小 标准 ->行高大小: 标准
希望在运行的时候,创建任意的对象,例如:TButton,TLabel,TImage等等......怎么办?

请参考下面的代码:

uses typinfo;

const

Buffer:array[0..3] of TComponentClass=(TBitBtn,TLabel,TButton,TSpeedButton);

procedure CreateObjectInstance(AClass:TComponentClass;Var Ref;AOwner:TComponent);

begin

TComponent(Ref):=TComponent(AClass.NewInstance);

try

TComponent(Ref).Create(AOwner);

except

TObject(Ref):= nil;

Raise;

end;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

var

Obj:TComponent;

i:integer;

begin

for i:=Low(Buffer) to High(Buffer) do

begin

CreateObjectInstance(Buffer[i],Obj,Self);

TControl(Obj).Parent := Self;

SetPropValue(Obj,'Top',i*30);

SetPropValue(Obj,'Caption','Test');

end;

end;

此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/67927.html