我的申请表中有两个单独的表格。我创建了一个额外的空表单,并在其上放置了两个菜单项的TMainMenu组件。这个新表单将作为加载其他所有内容的主要表单。现在我希望它像这样工作:当你点击两个菜单项中的任何一个时,它应该将相应表单的内容加载到与主表单相关联的菜单项。我怎样才能做到这一点?或者这种问题的典型方法是什么?请提供一个简单的说明性示例。
答案 0 :(得分:0)
如果你想在你的主表单中嵌入其他表单,请将一个tpanel放入你的主表单set alclient属性中。点击设置fromxxx.parent是您的面板名称。
这是一个示例代码
begin
if Dm.TblUser.Active=False then
Dm.TblUser.Active := True;
if FrmPUserG=nil then
FrmPUserG := TFrmPUserG.Create(Self);
FrmpUserG.Parent := PnLContainer;
FrmpUserG.Align := alClient;
FrmpUserG.BorderStyle := bsNone;
FrmpUserG.Visible := True;
FrmpUserG.BringToFront;
end;
答案 1 :(得分:0)
在TPanel
上创建MainForm
并设置其Align := alClient
,BevelOuter := bvNone
。同时提供MainForm
属性Form1: TForm1
和Form2: TForm2
。然后以这种方式显示Form1
或Form2
:
显示Form1
:
if not Assigned(MainForm.Form1) then
MainForm.Form1 := TForm1.Create(MainForm);
MainForm.Form1.Parent := MainForm.Panel1;
MainForm.Form1.Align := alClient;
MainForm.Form1.BorderStyle := bsNone;
MainForm.Form1.Visible := True;
if Assigned(MainForm.Form2) then
MainForm.Form2.Visible := False;
当然你不需要写MainForm
;只是为了清楚地说明这个例子。
答案 2 :(得分:0)
如果您已经创建了一堆表单,并希望添加显示功能,那么#14;停靠"您可以将继承更改为新模板而不是TFrom 通过添加和重载构造函数,您将能够像往常一样使用它们,或者#34;停靠" 要更改继承,您只需要替换
type
TYourForm = class(TForm)
带
type
TYourForm = class(TTemplate)
并使用object
替换DMF中的inherited
{
public
Constructor Create(AOwner:TComponent;AParent:TWinControl=nil);Overload;
.....
}
constructor TTemplate.Create(AOwner: TComponent; AParent: TWinControl);
begin
inherited Create(AOwner);
if Assigned(AParent) then
begin
BorderStyle := bsNone;
Parent := AParent;
Align := alClient;
end;
end;