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

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


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

相关文章推荐

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

使用RzPageControl来实现多标签页 使用菜单来打开标签页,通过标签页的caption来判断将标签页是否已经被打开过了. 1.创建标签页,并判断是否是已经打开过的页面 ...

Delphi 隐藏 TPageControl 的标签方法

下面是个简单的例子: ..... begin   //先屏蔽掉所有标签   for i := 0 to PageControl.PageCount - 1 do     Pa...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

DELPHI美化界面

1.透明问题。 要重新调整界面确实很麻烦,以前用DELPHI开发的界面都很土,和WEB真是没办法比。(我以前用的是DELPHI7),现在回想起来,DELPHI难做的原因是:没有透明控件。所有控件...

多页控制组件PageControl

PageControl组件位于组件板的Win32页中,该组件用于 实现窗体上多页面技术,每个页面上均能添加若干控件。程序运行时,单击页面标签就可以在多页之间切换。 1.建立多页 用鼠标右键单击P...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi封装Mdi窗体到Dll并使用插件管理,tabControl制作多页面

源码下载地址 1.ShareMem的引用要放在各单元的第一位置,否则会报错 2.dll中mdi子窗体关闭时要,      Action:=caFree;     TestForm2...
  • spd260
  • spd260
  • 2013年01月27日 16:00
  • 2160

Delphi中CxGrid控件使用总结

(注版本为DevExpr_v46) 1.     CxGrid汇总功能 ① OptionsView-Footer设置为True,显示页脚   ② CxGrid的Summary选项卡定义要汇总...

Delphi下的winsock-api 函数(一)

  winsock 是网络编程的接口,它是Tcp/IP协议的一种封装;  下面关于一些winsock api常用函数和基本定义:      要通过winsock建立通信,必需了解如何利用指定的协议为工...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:delphi Tpagecontrol 动态增加页面
举报原因:
原因补充:

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