完整的代码如下(您可以把它拷到你的单元文件中直接运行一下看看):
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;
  ZhanName:array of Tlabel;
  KaiZhan: array of TCheckBox;
  DianLu:array of TCheckBox;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
var
  i:integer;
begin
  setlength(zhanname,10);
  setlength(dianlu,10);
  setlength(kaizhan,10);
  for i:=1 to 10 do
  begin
    if i<=5 then
    begin
      zhanname[i]:=TLabel.Create(GroupBox1);
      zhanname[i].Parent:=GroupBox1;
      zhanName[i].Caption:=inttostr(i)+'hehe';
      zhanname[i].Left:=8;
      zhanname[i].Top:=(-3)+i*26;
      zhanname[i].Width:=35;      KaiZhan[i]:=TCheckBox.Create(GroupBox1);
      KaiZhan[i].Parent:=GroupBox1;
      KaiZhan[i].Caption:='开泵';
      KaiZhan[i].Left:=68;
      KaiZhan[i].Top:=(-6)+i*26;
      KaiZhan[i].Width:=45;      dianlu[i]:=TCheckBox.Create(GroupBox1);
      dianlu[i].Parent:=GroupBox1;
      dianlu[i].Caption:='点炉';
      dianlu[i].Left:=136;
      dianlu[i].Top:=(-6)+i*26;
      dianlu[i].Width:=45;
    end;
    if i>5 then
    begin
      zhanname[i]:=TLabel.Create(GroupBox1);
      zhanname[i].Parent:=GroupBox1;
      zhanName[i].Caption:=inttostr(i)+'ouui';
      zhanname[i].Left:=216;
      zhanname[i].Top:=(-3)+(i-5)*26;
      zhanname[i].Width:=35;      KaiZhan[i]:=TCheckBox.Create(GroupBox1);
      KaiZhan[i].Parent:=GroupBox1;
      KaiZhan[i].Caption:='开泵';
      KaiZhan[i].Left:=272;
      KaiZhan[i].Top:=(-6)+(i-5)*26;
      KaiZhan[i].Width:=45;      dianlu[i]:=TCheckBox.Create(GroupBox1);
      dianlu[i].Parent:=GroupBox1;
      dianlu[i].Caption:='点炉';
      dianlu[i].Left:=340;
      dianlu[i].Top:=(-6)+(i-5)*26;
      dianlu[i].Width:=45
    end;
  end;
end;end.问题是,在关闭窗口以后,就会提示出错。
提示:无效的指针操作。承蒙热心相助则感激不尽。