再RzPageControl中释放EmbeddedWB报错

dongmei757 2012-09-24 08:57:45

var
Form1: TForm1;
TabOne : TRzTabSheet;
PanelOne: TRzPanel;
WebOne : TEmbeddedWB;

implementation

{$R *.dfm}

procedure TForm1.CreatePage(var Panel: TRzPanel; TbsName:string;PanelName:string);
var
NewPage : TRzTabSheet;

begin
NewPage := TRZTabSheet.Create(RzPageControl1);
NewPage.PageControl := RzPageControl1;
NewPage.Align := alClient;
NewPage.Name := TbsName;
RzPageControl1.ActivePage := Newpage;
NewPage.PageIndex := RzPageControl1.PageCount - 1;
Panel := TRzPanel.Create(Self);
Panel.Parent := RzPageControl1.ActivePage;
Panel.Visible := True;
Panel.Caption := 'test';
Panel.Name := PanelName;
Panel.Color := clLime;
Panel.Align := alClient;
end;

procedure TForm1.CreateWeb(var Web : TEmbeddedWB);
begin
if Assigned(Web) then
begin
FreeAndNil(Web);
end;
Web := TEmbeddedWB.Create(Self);
TWinControl(Web).Parent := PanelOne;
Web.Visible := True;
Web.Align := alClient;
Web.Silent := True;
Web.Name := 'WebOne';
end;

procedure TForm1.DestroyWEB(var Web : TEmbeddedWB);
begin
while Assigned(Web) do
begin
Application.ProcessMessages;
FreeAndNil(Web);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
CreatePage(PanelOne,'TabOn','PanelOne');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
CreateWeb(WebOne);
end;

procedure TForm1.RzPageControl1Close(Sender: TObject;
var AllowClose: Boolean);
begin
AllowClose := True;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
WebOne.Navigate('http://www.baidu.com');
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
DestroyWEB(WebOne);
PanelOne.Free;
RzPageControl1.ActivePage.Free;
end;


依次创建newpage,panel,web,开始浏览没有问题,但是使用RzPageControl1Close关闭页后,再次创建newpage,panel也没有问题,到第二次创建web时报内存错误,
如果屏蔽掉procedure TForm1.CreateWeb(var Web : TEmbeddedWB);中的
if Assigned(Web) then
begin
FreeAndNil(Web);
end; 程序就不会报错,但有的时候我在创建web前必须要判断web是否已经创建,如果创建了,就必须释放。

如果使用自己写的释放procedure TForm1.Button4Click(Sender: TObject);再加上释放判断,程序也没有问题。

请大家帮忙看看使用RzPageControl1Close时代码哪里有错误,帮忙修改修改
或者能否获得关闭按钮的事件,将Button4Click添加进去也行。另一贴地址:http://topic.csdn.net/u/20120918/21/39754f00-bf49-4b7e-813f-c73d1b1970ef.html
问题解决后两个帖子都结贴,共200分
...全文
115 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
一如当初 2012-10-08
  • 打赏
  • 举报
回复
好长啊。。。
dongmei757 2012-09-24
  • 打赏
  • 举报
回复

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧