delphi怎样把子窗体显示在pagecontrol的tabsheet,50分

qq_30831745 2016-07-07 11:33:59
我新建一个主窗体放有mainmenu和pagecontrol,创建几个mainmenu的子类,每点击一个子类弹出一个子窗体然后子窗体显示在pagecontrol的tabsheet中,或者我点击一个mainmenu的N1对应显示pagecontrol的tabsheet1,大神求教
...全文
1471 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
不得闲 2016-11-04
  • 打赏
  • 举报
回复
ManulDock,停靠
lyhoo163 2016-08-22
  • 打赏
  • 举报
回复
还有加一个条件: 一、子窗体 1、FormStyle:=fsNormal; 2、WindowState := wsMaximized; 3、

procedure TShowPathFrm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action:=caFree;
end;
4、

procedure TShowPathFrm.FormDestroy(Sender: TObject);
begin
  ShowPathFrm:=Nil;
end;
5、BordStyle := bsNone; 6、Option-Forms设置子窗体:Available forms 二、主窗体 1、加入PageControl 2、增加一个Page 3、调用打开(窗体)事件
procedure TMDIMainFrm.Button1Click(Sender: TObject);
begin
  if not Assigned(ShowPathFrm) then
    ShowPathFrm:=TShowPathFrm.Create(nil);
  try
    ShowPathFrm.ManualDock(PageControl1.Pages[0]);  // 嵌入PageControl1.Pages[0]
    ShowPathFrm.Show;
  except
    ShowPathFrm.Close;
    Exception.Create('Error');
  end;
end;
lyhoo163 2016-08-22
  • 打赏
  • 举报
回复
一、子窗体 1、FormStyle:=fsNormal; 2、WindowState := wsMaximized; 3、

procedure TShowPathFrm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action:=caFree;
end;
4、

procedure TShowPathFrm.FormDestroy(Sender: TObject);
begin
  ShowPathFrm:=Nil;
end;
5、Option-Forms设置子窗体:Available forms 二、主窗体 1、加入PageControl 2、增加一个Page 3、调用打开(窗体)事件
procedure TMDIMainFrm.Button1Click(Sender: TObject);
begin
  if not Assigned(ShowPathFrm) then
    ShowPathFrm:=TShowPathFrm.Create(nil);
  try
    ShowPathFrm.ManualDock(PageControl1.Pages[0]);  // 嵌入PageControl1.Pages[0]
    ShowPathFrm.Show;
  except
    ShowPathFrm.Close;
    Exception.Create('Error');
  end;
end;
看那山瞧那水 2016-08-21
  • 打赏
  • 举报
回复
Dock procedure TfrmMain.btn1Click(Sender: TObject); begin if not Assigned(Form1) then Form1:=TForm1.Create(nil); try Form1.ManualDock(pgc1.Pages[0]); //嵌入PANEL显示子窗体 Form1.Show; except Form1.Close; Exception.Create(‘Error’); end; end; //子窗体 procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TForm1.FormDestroy(Sender: TObject); begin Form1:=nil; end; BordStyle := bsNone; WindowState := wsMaximized;
reverzeng 2016-08-13
  • 打赏
  • 举报
回复
4楼兄弟的方法可以实现
jjpweb 2016-07-15
  • 打赏
  • 举报
回复
窗体的parent := tabsheet 窗体的borderStyle:=bsnone
英年渐肥 2016-07-15
  • 打赏
  • 举报
回复
父类或停靠都可以
qq_30831745 2016-07-07
  • 打赏
  • 举报
回复
有没人跑来解决啊
qq_30831745 2016-07-07
  • 打赏
  • 举报
回复
不是3楼说的这个,他那个太麻烦了
zbdzjx 2016-07-07
  • 打赏
  • 举报
回复
这个??http://blog.csdn.net/xiongmao000738/article/details/6734546

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧