PageControl的问题请教
各位前辈:
小弟碰到个问题,请教各位大神.代码如下:
function TMainForm.OpenForm(FrmCaption: string; MyFormCls: TFormClass):Boolean;
var
i:Integer;
TabSheet:TRzTabSheet;
MyForm:TForm;
begin
for i:=0 to RzPageControl1.PageCount-1 do
if RzPageControl1.Pages[i].Caption = FrmCaption then
begin
RzPageControl1.ActivePageIndex:=i;
exit;
end;
begin
TabSheet:=TRzTabSheet.Create(Self);
TabSheet.PageControl:=RzPageControl1;
TabSheet.Caption:=FrmCaption;
MyForm:=MyFormCls.Create(Self);
MyForm.ParentWindow:=TabSheet.Handle;
MyForm.BorderStyle:=bsNone;
MyForm.Align:=alClient;
RzPageControl1.ActivePage:=TabSheet;
end;
end;
//下面是调用
procedure TMainForm.N16Click(Sender: TObject);
begin
OpenForm(DeviceForm.Caption , TDeviceForm);
end;
上面这个例子是在主窗体有一个PageContol控件,点击打开后会动态创建一个TabSheet,同时将DeviceForm的窗体调入到TabSheet中,释放和关闭窗体的按钮在DeviceForm里面.
现在上面这段的代码所出的问题是:
1.当新建窗体打开后,TabSheet上的标签为空,没有东西显示
2.在退出程序时会报错,图片如下:
3.在DeviceForm关闭窗体时如何同时也释放主窗体的TabSheet
[解决办法]
MyFormCls是tform还是什么。。
[解决办法]
if RzPageControl1.Pages[i].Caption = FrmCaption then
如果找到这个标题的页,再去建立这个页么?
TabSheet.Caption:=FrmCaption