新建一个Frame
代码如下:unit Unit2;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
  TFrame2 = class(TFrame)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Frame2: TFrame2;
implementation{$R *.dfm}procedure TFrame2.Button1Click(Sender: TObject);
begin
  self.Free;
  Frame2:=nil;
end;end.
主窗体代码如下:unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
  if not Assigned(Frame2) then
  begin
    Frame2:=TFrame2.Create(self);
    Frame2.Parent:=self;
  end;
end;end.这样不行呀,点那个Frame2上的按钮会出错。
提示说access violation at address。