关于多窗体的技术,大富翁上从未有过的问题?(100分)

  • 主题发起人 主题发起人 mbnet
  • 开始时间 开始时间
M

mbnet

Unregistered / Unconfirmed
GUEST, unregistred user!
在不使用MDI窗体的情况下,做一个多窗体应用程序,主窗体中包含N个子窗体,子窗体的排列象多窗体浏览器一样,可以用标签来回切换。这样的界面怎么做?分不够再加!
 
提供一方法,在主窗口上放一TPanel
ChildFrm := Tfrm..Create();
ChildFrm.Parent := TPanel;
ChildFrm.Show;

当然你可以设置子窗口的N个属性,满足你的要求
 
PageControl+Frame
 
TO:徐艳成,
根据你的原理,基本上可以解决问题,我是用PageControl做的,程序开始运行后自动创建一个TabSheet,接着用户可以根据各个菜单打开其它窗体(也就是创建TabSheet),但现在问题来了,PageContro中包含多个TabSheet后,TabSheet中包含了窗体类,窗体中有一个Button,在单击这个按钮后怎么关闭窗体本身与TabSheet呢?
创建TabSheet:
procedure TFrmMain.NewTabSheet(aForm: TForm);
var
TabSheet: TRzTabSheet;
begin
TabSheet := TRzTabSheet.Create(RzPgControl);
with TabSheet do
begin
PageControl := RzPgControl;
aForm.Parent := TabSheet;
TabSheet.Caption := aForm.Caption;
aForm.Show;
aForm.Align := alClient;
RzPgControl.ActivePage := TabSheet;
end;
end;
 
ycxy兄,你说的PageControl+Frame 我正想实践,但我对Frame不太了解,能否给个例子?
 
很简单啊,在窗体关闭的时候,获取窗体的parent,转换为tabsheet,然后设置该tabsheet的属性tabvisable为false就可以了
 
dinglj1760兄,能给出代码参考吗?
 
使用pagecontrol就可以解决了,
 
cqwty,我现在是用PageControl,用以下代码将窗体画在TabSheet中:
procedure TFrmMain.NewTabSheet(aForm: TForm);
var
TabSheet: TRzTabSheet;
begin
TabSheet := TRzTabSheet.Create(RzPgControl);
with TabSheet do
begin
PageControl := RzPgControl;
aForm.Parent := TabSheet;
TabSheet.Caption := aForm.Caption;
aForm.Show;
aForm.Align := alClient;
RzPgControl.ActivePage := TabSheet;
end;
end;

但窗体上有一个Button,要单击这个按钮后关闭窗体本身与TabSheet的代码怎么写呢?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
544
import
I
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部