大虾们,见笑了!请问如何从pagecontrol中删除任一tabsheet。。(100分)

  • 主题发起人 主题发起人 sytzlh
  • 开始时间 开始时间
S

sytzlh

Unregistered / Unconfirmed
GUEST, unregistred user!
我想,练习做一个类似与多窗口浏览器的程序,可以动态创建tabsheet,D无法删除,(既,选择关闭
该tabsheet从pagecontrol中remove,使用removecomponent ,repaint,不行!!
请大虾给出具体方法!!

小弟这里谢过了!
 
删不调就隐含起来,一会儿用 :)
tabsheet占的资源应该不会很多,多的是浏览窗体
 
TabSheet1.Free;
TabSheet1 := Nil;
 
PageControl1.Pages[Index].Free
 
从最后开始删除
PageControl1.Pages[PageControl1.PageCount-1].Destroy;
若要删除其中任何一个,设PageControl1.Pages中I的值
 
如果我用free或者destory 重新创建后就会出错!!
我的 意思是可以随意删除,然后随意添加!! 不仅仅只是删除! 那样在create时就会出错
 
上述各位大虾的方法是正确的,至于你创建那是另外一个问题,与删除无关的
 
实验通过
procedure TForm1.Button1Click(Sender: TObject);
var
T:TTabSheet;
i: Integer;
begin
{删除}
for i:=PageControl1.PageCount-1 downto 0 do
PageControl1.Pages.Free;
{增加}
T:=TTabSheet.Create(PageControl1);
T.PageControl:=PageControl1;
end;
 
不知道你的代码是怎么写的.一个示例
//创建
procedure TForm1.Button1Click(Sender: TObject);
var
tabsheet : TTabSheet;
begin
tabsheet := TTabSheet.Create(Pagecontrol1);
tabsheet.PageControl := PageControl1;
tabSheet.Caption := 'MyCreate';
// tabSheet.PageIndex := 0; 生成后再pagecontrol中的位置
end;

//删除
procedure TForm1.Button2Click(Sender: TObject);
begin
if PageControl1.PageCount > 0 then
PageControl1.Pages[PageControl1.PageCount-1].Free;
end;
 
谢谢各位大虾已经找到错误原因!! 给分了!! 想和大家交个朋友!!

delphi我主要靠自学!!有好多问题总是无人请教!!现在要毕业了!!
希望以后大家多多帮助小弟!!再次感谢!!!
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部