unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,ExtCtrls, StdCtrls;type
  TForm1 = class(TForm)
    ScrollBox1: TScrollBox;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    AA : array of TPanel;
    procedure AAclick(Sender : Tobject);
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.AAclick(Sender: Tobject);
VAR N : INTEGER;
begin
  for n :=Low(AA)  to High(AA) do
  begin
    if AA[n]<>nil then
      FreeAndnil(AA[n]);
  end;
end;procedure TForm1.Button1Click(Sender: TObject);
var n : integer;
begin
  SetLength(AA,3);
  for n :=Low(AA)  to High(AA) do
  begin
    AA[n] :=TPanel.Create(ScrollBox1);
    AA[n].Parent :=ScrollBox1;
    AA[n].Caption :=inttostr(n);
    AA[n].Left :=0;
    AA[n].Top :=n*AA[n].Height;
    AA[n].Height :=50;
    AA[n].Width :=50;
    AA[n].Color :=Clred;
    AA[n].OnClick :=AAclick;
  end;
end;end.
////////////////////////////////////////////////////////当我释放第0个panel时候释放总是报错!第一个和第二个确没问题!
那是为什么?怎么解决啊?