关于PageControl的问题
各位前辈:
小弟在使用PageControl时碰到个问题,试了很久也不知道怎么回事,请帮忙看看,先谢过了,下面是代码:
procedure TMainForm.N16Click(Sender: TObject);
var
i:Integer;
TabSheet:TRzTabSheet;
begin
for i:=0 to RzPageControl1.PageCount-1 do
begin
if RzPageControl1.Pages[i].Caption = '设备清单' then
begin
RzPageControl1.ActivePageIndex:=i;
end
else
begin
TabSheet:=TRzTabSheet.Create(Self);
TabSheet.PageControl:=RzPageControl1;
TabSheet.Caption:='设备清单';
DeviceForm:=TDeviceForm.Create(Application);
DeviceForm.ParentWindow:=TabSheet.Handle;
DeviceForm.BorderStyle:=bsNone;
DeviceForm.Align:=alClient;
RzPageControl1.ActivePage:=TabSheet;
end;
end;
end;
上面这段代码发生的问题是:每次点都会新建一个TabSheet和窗体,本来目的是对已经打开的就不要新建了,直接显示就可以,但是上面的代码却不能实施,摸索了很久也不知道为什么,请各位大大指点下吧
[解决办法]
if条件满足时,for循环未退出break;
[解决办法]
信件已阅,
但是我只能将我自己处理的方法分享给你的
我的方法是先测试RzPageControl1中的TabSheet是否打开相关
的窗体(我是将窗体嵌入这个TabSheet中的),
如果打开,提示必须先关闭TabSheet中的窗体(声明窗体中有一个退出功能
并释放出TabSheet,以方便以后再次加载窗体的)
如果没有嵌入窗体的话,就直接加载相关窗体
如下图所示:
[解决办法]