首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

动态创建控件的有关问题,来者有分

2012-03-07 
动态创建控件的问题,来者有分!我建立了一个类然后声明这个类调用创建出了问题TAutoCreatePanel class(TO

动态创建控件的问题,来者有分!
我建立了一个类

然后声明这个类

调用创建

出了问题

TAutoCreatePanel = class(TObject)
  private
  PNN : Tpanel;
  public
  constructor Create(cParent: TComponent);  
  procedure FreePanel;
  end;

constructor TAutoCreatePanel .Create(cParent: TComponent);
begin
  PNN := Tpanel.Create(nil); //报内容地址错误
  PNN.Width := 10;
  PNN.Height:= 10;
end;

var
  FAutoCreatePanel : array of TAutoCreatePanel ; 

。。。。
SetLength(FAutoCreatePanel , 10); //回馈串口监控数组

FAutoCreatePanel[1].create(Nil);的时候出现错误




[解决办法]
constructor TAutoCreatePanel .Create(cParent: TComponent);
begin
inherited Create;
PNN := Tpanel.Create(nil); //报内容地址错误
PNN.Width := 10;
PNN.Height:= 10;
end;
[解决办法]
procedure TForm1.Button1Click(Sender: TObject);
begin
SetLength(FAutoCreatePanel , 10); //回馈串口监控数组
FAutoCreatePanel[1].create(Nil);//的时候出现错误

end;

构造函数的调用方法应为:FAutoCreatePanel[1]:=TAutoCreatePanel.Create(nil);
因为调用Create方法时FAutoCreatePanel[1]实例未创建,FAutoCreatePanel[1].Create就会内存访问错误

热点排行