pagecontrol控制mdi子窗体的有关问题
pagecontrol控制mdi子窗体的问题
我现在想实现这样的功能
在主窗体中点菜单,动态生成子窗体和pagecontrol上的tabsheet
现在的问题是:我想在tabsheet进行切换时,相对应的子窗体就显示到最前面,我在tabclick事件中无法判断当前tab对应的是哪一个form,请高手指点!
------解决方案--------------------
用TTabControl吧
//新建窗口时,在Tab上添加项目
procedure TfrmParentMain.AddTabItem(AForm: TForm);
begin
TabControl1.Tabs.AddObject(AForm.Caption, TObject(AForm));
end;
//关闭窗口时,在Tab上删除项目
procedure TfrmParentMain.DelTabItem(AForm: TForm);
var
i: Integer;
begin
i := TabControl1.Tabs.IndexOfObject(AForm);
if i > = 0 then TabControl1.Tabs.Delete(i);
end;
//切换Tab时,显示相关的窗口
procedure TfrmParentMain.tcTabsChange(Sender: TObject);
begin
if TabControl1.TabIndex> =0 then
TForm(TabControl1.Tabs.Objects[TabControl1.Index]).Show;
end;
我现在想实现这样的功能
在主窗体中点菜单,动态生成子窗体和pagecontrol上的tabsheet
现在的问题是:我想在tabsheet进行切换时,相对应的子窗体就显示到最前面,我在tabclick事件中无法判断当前tab对应的是哪一个form,请高手指点!
------解决方案--------------------
用TTabControl吧
//新建窗口时,在Tab上添加项目
procedure TfrmParentMain.AddTabItem(AForm: TForm);
begin
TabControl1.Tabs.AddObject(AForm.Caption, TObject(AForm));
end;
//关闭窗口时,在Tab上删除项目
procedure TfrmParentMain.DelTabItem(AForm: TForm);
var
i: Integer;
begin
i := TabControl1.Tabs.IndexOfObject(AForm);
if i > = 0 then TabControl1.Tabs.Delete(i);
end;
//切换Tab时,显示相关的窗口
procedure TfrmParentMain.tcTabsChange(Sender: TObject);
begin
if TabControl1.TabIndex> =0 then
TForm(TabControl1.Tabs.Objects[TabControl1.Index]).Show;
end;