Tabsheet的动态创建和释放有问题....(100分)

  • 主题发起人 主题发起人 jman168
  • 开始时间 开始时间
J

jman168

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Btn_AddClick(Sender: TObject);
var Tabsheet:TTabSheet;
i:integer;
begin
for i:=1 to 15 do
begin
Tabsheet:=TTabsheet.Create(self);
Tabsheet.PageControl:=PageControl1;
Tabsheet.Name:='Tabsheet'+IntToStr(i);
Tabsheet.Caption:='Jman建'+IntToStr(i);
end;
end;

procedure TForm1.Btn_FreeClick(Sender: TObject);
var i:integer;
begin
for i:=0 to 14 do
pageControl1.Pages.Free ;
end;

end.
释放中出错 为什么 先谢了,.学习中
 
procedure TForm1.Button1Click(Sender: TObject);
var Tabsheet:TTabSheet;
i:integer;
begin
for i:=1 to 15 do
begin
Tabsheet:=TTabsheet.Create(PageControl1);
Tabsheet.PageControl:=PageControl1;
Tabsheet.Name:='Tabsheet'+IntToStr(i);
Tabsheet.Caption:='Jman建'+IntToStr(i);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
while PageControl1.PageCount <> 0 do
PageControl1.ActivePage.Free;
end;
 
for i:=14 downto 0 do
pageControl1.Pages.Free
 
begin
for i:=0 to 14 do
PageControl1.ActivePage.Free;//释放的正确方法。
end;
 
pagecontrol组件总觉的有很多BUG啊。
 
procedure TForm1.Btn_AddClick(Sender: TObject);
var Tabsheet:TTabSheet;
i:integer;
begin
for i:=1 to 15 do
begin
Tabsheet:=TTabsheet.Create(self);
Tabsheet.PageControl:=PageControl1;
Tabsheet.Name:='Tabsheet'+IntToStr(i);
Tabsheet.Caption:='Jman建'+IntToStr(i);
end;
end;

procedure TForm1.Btn_FreeClick(Sender: TObject);
var i:integer;
begin
for i:=14 downto 0 do
pageControl1.Pages.Free ; //某个Page在Free后,它的Count就少了一个,到了某个Pages[x]就会超出范围了。
end;

end.
 
这样没问题:

procedure TForm1.Btn_FreeClick(Sender: TObject);
begin
while PageControl1.PageCount <> 0 do
PageControl1.ActivePage.Free;
end;

 
谢谢以上各位~!
 
多人接受答案了。
 
后退
顶部