关于选项卡模式的窗体,先看一个我开发的一个案例图
在图片中我们可以看到,主界面是固定排版的,所有模块窗体在打开时,都是在主界面的选项卡上增加一个选项,也可以通过关闭选项卡来关闭窗体,那么实现的方式是什么呢?
【第一步】
我们首先创建一个过程
procedure OpenForm(FrmName,FrmCaption:string;MyFormCls:TFormClass);
针对此过程的参数简单的解释一下:
FrmName:窗体的名称
FrmCaption:显示在选项卡上的标签内容
MyFormCls:要打开窗体的类名
【第二步】
我们给过程添加功能代码如下:
注:我这里的选项卡使用的是Raize控件包中的RzPageControl
procedure TFrmMain.OpenForm(FrmName, FrmCaption: string; MyFormCls: TFormClass);
var
MyTabSheet:TRzTabSheet;
MyForm:TForm;
begin
MyTabSheet := TRzTabSheet(self.FindComponent(FrmName));
if MyTabSheet = nil then
begin
try
//创建新标签页
MyTabSheet := TRzTabSheet.Create(self);
MyTabSheet.Name := FrmName;
MyTabSheet.PageControl := RzPageControl1;
MyTabSheet.Caption := FrmCaption;
MyTabSheet.Align := alClient;
try
MyForm:=MyFormCls.Create(Self);
MyForm.Parent:=MyTabSheet;
MyForm.BorderStyle:=bsNone;
MyForm.Align:=alClient;
MyForm.Show;
except
FreeAndNil(MyForm);
Abort;
end;
except
FreeAndNil(MyTabSheet);
Exit;
end;
end;
RzPageControl1.ActivePage:=MyTabSheet;
end;
【第三步】
以上就是使用选项卡打开窗体的一个过程,如果要调用非常简单,如我需要打开一个窗体名称为:FrmMIOEE的窗体,下面的代码直接调用
procedure TFrmMain.MIOEE1Click(Sender: TObject);
begin
OpenForm('FrmMIOEE','MI设备OEE',TFrmMIOEE); //调用选项卡打开窗体的过程
end;
【第四步】
如何关闭选项卡窗体,下面两行代码搞定。
RzPageControl1.ActivePage.Free;
RzPageControl1.SelectNextPage(False);