Delphi - 子表单具有父表框架

时间:2012-01-04 20:58:46

标签: delphi tform

我有一个包含多个表单的delphi应用程序。最初我尝试了一个设置,其中每个新打开的表单都是一个框架,这个表单的“父”(无论哪个打开表单)被隐藏,因为孩子被显示,孩子被调整大小并重新定位,以提供无缝效果有一个窗口,当孩子关闭时,父母被重新安置并再次可见。所有窗体都具有Windows标题栏的bsSingle边框样式。 这种方法适用于定位但是我的问题是明显的闪烁,因为父窗体关闭并且孩子打开了,并且因为有一小段时间没有打开任何表格,开始栏上的图标/托盘会转移它本身变得隐藏和可见。

有人对解决这个问题有什么建议吗?我想也许如果我在应用程序中只有一个带边框的表单并在这个边框内打开每个新表单它会更好 - 虽然我不确定如何做到这一点。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

很容易使一个表单在另一个表单中显示为子表单。创建一个新表单,其中包含并创建其他表单:

procedure TMainForm.FormCreate(Sender: TObject);
var
  F : TForm;
begin
  F := TOneOfYourChildForms.Create(Self);
  F.Parent := Self;
  F.Show();
end;

创建与此类似的子表单,然后在要显示的表单上执行“显示”,在另一个表单上单击“隐藏”。在子窗体上将BorderStyle设置为bsNone以删除标题。如果您自己创建这样的表单,请在项目设置中关闭自动创建。

答案 1 :(得分:1)

我在这个设计上取得了成功,我认为它也有助于在TFrame中获得“主要形式”的内容。当您想要显示主窗体时,您只需执行帧交换。