如何把所有子窗体都变成主窗体的一个部分呢?大虾诚请!急(20分)

  • 主题发起人 主题发起人 carrie4002
  • 开始时间 开始时间
C

carrie4002

Unregistered / Unconfirmed
GUEST, unregistred user!
如何把所有子窗体都变成主窗体的一个部分呢?就象网页
一样,须把子窗体做成网页的主体部分,主子窗体做在一
个窗体里。怎么办?
 
不明白你说的,是frams吗?帮你顶
 
子.BorderStyle:=bsNone;
子.Parent:=主窗口
 
to yuzk2005:
谢谢你。
“子.Parent:=主窗口”,窗体好象没有“Parent”这个属性。
大虾们,诚请!
 
formstyle:=fsMDIChild;
属性
 
to 衣雪峰:
那,主窗体需要设置成formstyle:=fsMDIForm吗?
 
子.FormStyle:= fsNormal;
窗体应该有“Parent”这个属性
 
这是我用的,将tfCurrent显示在pParent内,cfcForm是tfCurrent的类,中间对pParent当前显示的Form进行了检查并释放(为减少同时打开的Form数)
procedure TfrmMAIN.DisplayForm(pParent: TPanel; cfcForm: TFormClass;
tfCurrent: TForm);
Var
i: Integer;
Temp: TControl;
begin
ShowPrompt('请等待,正在加载处理模块.....');
for i := 0 to pParent.ControlCount-1 do begin
Temp := pParent.Controls;
if ( Temp is TForm ) Then Try
If (( Temp As TForm ).Showing ) And
(( tfCurrent<>nil ) And ( Temp<>tfCurrent )) Then Begin
( Temp as TForm ).Free;
End;
except
end;
End;
If Assigned( tfCurrent ) Then
Else Application.CreateForm( cfcForm, tfCurrent );
With tfCurrent Do try
Caption := '';
BorderStyle := bsNone;
BorderIcons := [];
BringToFront;
Parent := pParent;
Align := alClient;
WindowState := wsMaximized;
Show;
except
end;
End;
 
With tfCurrent Do try 改为
With cfcForm Do try
 
谢谢。
我的目的:主窗体类似于网页的主界面,上面有80像素高的标题+LOGO,
左边有80像素的功能区,现在我想在主窗体剩余的部分调用不同的子窗体,
每个子窗体功能都不同,但每次只调一个,并且必须与主窗体合为一个
窗体,大小就是主窗体剩余的部分。
我说清楚了吗?
 
在主窗体上放一个Panel,panel位置调整为放窗体的位置
Parent := pParent;改为
Parent := panel;
 
to yuzk2005:
谢谢。
ChdFrm.Parent:=main.Form1,把这条语句放在哪里?
放在ChdFrm.show()里运行时出错。
 
Application.CreateForm( TChdFrm, ChdFrm);

ChdFrm.Parent:=main.Form1
 
to yuzk2005,:
加你的代码,报系统错误(读某个地址出错)。
你的代码我加在子窗体的show()过程里。
 
加到FormCreate()里
 
to yuzk2005:
谢谢你。
 
多人接受答案了。
 
后退
顶部