读书人

Delphi中TRzPageControl兑现多窗口的融

发布时间: 2013-07-08 14:13:00 作者: rapoo

Delphi中TRzPageControl实现多窗口的融合窗口详细方法
请求前辈帮忙详细讲解如何把现有的系统(只能单窗口操作,调用方式为showmodal)改为show后会只能看到最前面的窗口.把子窗口的FormStyle属性改为mdichildform后无法运行(只能是fsNormal).
在网上看到说TRzPageControl可以实现多窗口的融合窗口,不知详细的方法是如何操作的?

由于本人只能发100分的贴子,要是谁能帮我实现了我结贴时再加80分(哈哈,再多就没有了,因为我只有180分)!
[解决办法]
这种事怎么还扎堆啊,昨天刚有个帖子
http://topic.csdn.net/u/20111031/22/68306454-2046-4620-9234-b846779e56c4.html?80071
那个Lz貌似研究的比较多的说
[解决办法]
在那上面放窗体就别用mdi,用普通窗体,设置其parent,就用普通的show即可
[解决办法]
提供一个过程,供参考:


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;


注意:在调用之前,先检查一下aPage上是否已融合的当前要融合的表单,
如果已融合,则切换到对应的Tabsheet,否则调用。


融合之后,生成的Tabsheet.caption为表单的caption
因此通过
for i:=0 to aPage.PageCount-1 进行遍历查找即可。
......

当然,这个检查过程也可以加在PageAddForm中去,加个参数就行了。

仅供参考。

[解决办法]
不知道这是不是楼主想要的啊:
http://blog.csdn.net/sdudubing/article/details/6790374

[解决办法]
因为你是作为主表单的 局部过程,所以实现部分要加上主表单的类名

procedure Tfm_MainForm.PageAddForm(aPage:TRZpageControl;aForm:TForm;TaFormClass:TClass);
begin
......
end;
[解决办法]
再浪费一下CSDN的资源,刚做了简单的测试给你。

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,


Dialogs, StdCtrls, RzTabs;

type
TForm1 = class(TForm)
page1: TRzPageControl;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure PageAddForm(mform:TForm;TmFormClass:TClass);
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

{ TForm1 }

procedure TForm1.PageAddForm(mform: TForm; TmFormClass: TClass);
begin
application.CreateForm(TcomponentClass(TmFormClass),mForm);
// mForm.show;
mForm.ManualDock(page1);
mForm.Visible :=true; //这种方法的效果比用 show的效果要好一些
page1.ActivePageIndex :=page1.PageCount-1;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
pageAddForm(Form2,TForm2);
end;

end.


============================

unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm2 = class(TForm)
Label1: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;

implementation

{$R *.dfm}

end.


读书人网 >.NET

热点推荐