新建一个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。
代码如下: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。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货