覆盖TForm后代的默认显示行为/ SetVisible(Delphi VCL)

时间:2009-11-09 03:17:45

标签: delphi properties override tform

我想改变TForm后代的Show默认行为(例如,而不是在屏幕上显示自己,我想将它作为新的标签页放在页面控件上)。 如何实现? 我想使用标准方法(调用Show方法或设置Visible属性)来显示它,所以我试图覆盖SetVisible方法。但是我发现SetVisible不能被覆盖,因为它是一个私有方法。 有什么建议可以覆盖吗?感谢。

2 个答案:

答案 0 :(得分:1)

您可以覆盖受保护的TCustomForm.VisibleChanging。

答案 1 :(得分:0)

有两种方法可以做我认为你在问的问题,即在一个面板或类似的表格中嵌入一个表格。有一个TForm.CreateParented(句柄)函数,但在我们的代码中我们倾向于不使用它。相反,我们使用这种代码创建表单:

MyForm := TMyForm.Create(Self);
MyForm.Parent := MyTabSheet;
MyForm.Border := bsNone;
MyForm.Align := alClient;
MyForm.Show;