delphi Tpagecontrol 动态增加页面

原创 2015年07月07日 15:57:58


    前些日子做一个项目需要用到 Tpagecontrol 这个控件,然而平时使用的时候都是直接在上面增加控件就可以了,可是这次却是需要动态添加页面,上网也搜了,对于这方面的知识还真是没见到多少,也许是我搜索的方法有问题吧,千辛万苦也就找到了一下3种方法,如果要认真将的话,也只能算是2种吧,今天分享出来,希望能为要用到这个功能,又不会的人减少些时间吧。


    第一种方法:


procedure PageAddForm(aPage:TRZpageControl;aForm:TForm;TaFormClass:TClass);
begin
    application.CreateForm(TComponent(TaFormClass),aForm);
   aForm.MaualDock(aPage));  //融合至pageControl,
   aForm.Visible:=true;              //这个比用 show效果更好
   aPage.ActivePageindex:=aPage.PageCount-1;
end;


也可以用aForm.MaualDock 可以用setparent;

                      这个方法比较简单,直接可以使用这个函数,里面的aForm 和 TaFormClass 是新建的窗口,然而这个方法却一直有个问题,就是窗口创建出来后,有一个停靠的过程,虽然时间很短,然而总是影响美观的。


第二种方法:

      这个方法比较复杂,然而应该就是创建动态方法的正确方法了。

procedure createTabPage(PageControl:TPageControl;form:TForm)
var
	newpage:TTabSheet;
begin
	newpage:=TTabSheet.create(PageControl);		//在PageControl 上创建TTabSheet控件
	newpage.caption:=form.caption;
	newpage.PageControl:=PageControl;		//按我的理解是设定newpage 的父控件
	PageControl.ActivePage:=newpage;		//吧newpage设定为活动页
	//到这里页面已经动态创建成功了,然而这还没有达到我们需要的功能,我们是需要在上面添加控件的
	form:=TForm.create(newpage);
 	Form.FormStyle := fsNormal;
 	Form.BorderStyle := bsNone;
 	Form.Parent := vSheet;
  	Form.Align := alClient;
  	Form.Show;
	
end

第三中方法就不贴了,基本上是上面的进行改造的


版权声明:本文为博主原创文章,未经博主允许不得转载。

RzPageControl(pagecontrol)实现多标签的动态添加,切换,关闭

 使用RzPageControl来实现多标签页 使用菜单来打开标签页,通过标签页的caption来判断将标签页是否已经被打开过了. 1.创建标签页,并判断是否是已经打开过的页面 ...
  • u013408061
  • u013408061
  • 2014年07月18日 11:01
  • 1011

Delphi:RzPageControl(pagecontrol)实现多标签的动态添加,切换,关闭

使用RzPageControl来实现多标签页 使用菜单来打开标签页,通过标签页的caption来判断将标签页是否已经被打开过了. 1.创建标签页,并判断是否是已经打开过的页面 ...
  • sdudubing
  • sdudubing
  • 2011年09月19日 15:50
  • 12075

Delphi动态添加菜单

unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,...
  • xzknet
  • xzknet
  • 2006年05月14日 11:43
  • 5622

delphi创建动态菜单

1.动态生成菜单项 var FirstItem: TMenuItem; SecondItem: TMenuItem; begin      FirstItem := TMenuIte...
  • delphi308
  • delphi308
  • 2014年03月10日 22:25
  • 3835

delphi 入门之《动态创建菜单》

由于在项目中用到动态创建菜单的功能,简单的记录下,主要是根据json的配置文件动态的创建菜单,用到的有一个json菜单配置文件,json转换的工具类SuperObject,具体的代码如下所示: 1、...
  • qq_38428623
  • qq_38428623
  • 2017年06月18日 17:06
  • 614

使用dxNavBar动态创建应用程序菜单

一、动态创建dxNavBar的简单代码 //++++++++++++++++++++++++++++++++++++++++++++++++// aBarGroup:=dxNavBar1.Groups...
  • xieyunc
  • xieyunc
  • 2015年09月20日 15:41
  • 2386

Delphi TPageControlEX 在TPageControl增加关闭按键

  • 2013年11月03日 13:42
  • 5KB
  • 下载

delphi 窗体的创建和释放

http://www.cnblogs.com/chenmfly/p/4770490.html delphi 窗体的创建和释放 Delphi中的窗体分为模式窗体和无模式窗体。二者...
  • y13156556538
  • y13156556538
  • 2016年10月21日 10:09
  • 3251

Delphi中的窗体创建与销毁

Delphi中的窗体,有模式窗体与非模式窗体两种。两种窗体的调用方式不同,模式窗体使用ShowModal显示,非模式窗体使用Show显示。当显示模式窗体的时候你是不能操作本程序的其他窗体的,你不能把焦...
  • wozengcong
  • wozengcong
  • 2014年01月04日 23:50
  • 2710

Dll学习一_Dll 创建并动态引用窗体且释放窗体Demo

1、新建Dll工程 2、Dll工程全部代码 library SubMain; { Important note about DLL memory management: ShareMem must ...
  • jupt1
  • jupt1
  • 2013年11月22日 15:10
  • 1372
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:delphi Tpagecontrol 动态增加页面
举报原因:
原因补充:

(最多只允许输入30个字)