我经常嵌入一个TForm
后代成为另一个TForm
后代是这样的:
var
Form1: TForm1;
Form2: TForm2;
begin
Form2.Parent := Form1;
Form2.BorderStyle := bsNone;
Form2.Align := alClient;
Form2.Show;
end;
通常这工作得很好,但有时 Form2 中的控件没有正确对齐。此类问题有通用的解决方法吗?
有谁知道是什么导致了这种“错位”?
我知道我可以使用TFrame
对于这种工作,但我有很多库代码需要重写,而且我看不出任何原因TForm
in TForm
方法应该行不通?
Edit:我已经识别了该组件TcxListView
作为这里的罪魁祸首,我已经向组件供应商(DevExpress)提交了一份错误报告:
http://www.devexpress.com/issue=B194161 http://www.devexpress.com/issue=B194161
Edit 2:DevExpress的开发人员分析了这个问题,并表示这实际上是一个缺陷TGridPanel
Embarcadero 组件:
http://qc.embarcadero.com/wc/qcmain.aspx?d=90324 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 的分配,但我怀疑这会导致问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)