希望在运行的时候,创建任意的对象,例如: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