我经常将TForm
后代嵌入到另一个TForm
后代中,如下所示:
var
Form1: TForm1;
Form2: TForm2;
begin
Form2.Parent := Form1;
Form2.BorderStyle := bsNone;
Form2.Align := alClient;
Form2.Show;
end;
通常这可以正常工作,但是有时Form2中的控件未正确对齐。是否有针对此类问题的一般解决方法?
有人知道是什么原因导致这种“错位”吗?
我知道我可以使用
TFrame
进行此类工作,但是我有很多必须重写的库代码,而且我看不到TForm
中的TForm
方法不起作用的任何原因?编辑:我在这里将组件
TcxListView
确定为罪魁祸首,我已经向组件供应商(DevExpress)提交了错误报告:http://www.devexpress.com/issue=B194161
编辑2:DevExpress的开发人员分析了问题,并说这实际上是Embarcadero的
TGridPanel
组件中的缺陷:http://qc.embarcadero.com/wc/qcmain.aspx?d=90324
最佳答案
我也这样做,并且使用以下例程来实现它:
procedure TMyForm.PlaceInsideContainer(Container: TWinControl);
begin
Parent := Container;
Align := alClient;
BorderIcons := [];
BorderStyle := bsNone;
ParentBackground := True;
Show;
end;
我对此没有任何问题。我可以想象的唯一可能与之相关的区别是BorderIcons的分配,但是我怀疑这会引起问题。
关于delphi - 在另一个TForm中嵌入一个TForm时如何避免出现问题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4385948/