读书人

PageControl的有关问题请问

发布时间: 2012-09-24 13:49:42 作者: rapoo

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

读书人网 >.NET

热点推荐