Jen*_*off 7 delphi layout vcl delphi-2007 tframe
我经常将一个TForm
后代嵌入另一个TForm
后代,如下所示:
var
Form1: TForm1;
Form2: TForm2;
begin
Form2.Parent := Form1;
Form2.BorderStyle := bsNone;
Form2.Align := alClient;
Form2.Show;
end;
Run Code Online (Sandbox Code Playgroud)
通常这很好用,但有时Form2中的控件没有正确对齐.这类问题有一般的解决方法吗?
有人知道造成这种"错位"的原因吗?
我知道我可以TFrame
用于这种工作,但我有很多库代码,我必须重写,我没有看到任何理由为什么TForm
in TForm
方法不起作用?
编辑:我已将组件识别TcxListView
为罪魁祸首,我已向组件供应商(DevExpress)提交了错误报告:
http://www.devexpress.com/issue=B194161
编辑2: DevExpress的开发人员已经分析了这个问题并说它实际上是TGridPanel
Embarcadero组件中的缺陷:
我也是这样做的,我使用以下例程来实现它:
procedure TMyForm.PlaceInsideContainer(Container: TWinControl);
begin
Parent := Container;
Align := alClient;
BorderIcons := [];
BorderStyle := bsNone;
ParentBackground := True;
Show;
end;
Run Code Online (Sandbox Code Playgroud)
我对此没有任何问题.我可能想象的唯一区别是BorderIcons的分配,但我怀疑这会导致问题.