加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 如何在另一个TForm中嵌入TForm时避免出现问题?

发布时间:2020-12-15 04:08:23 所属栏目:大数据 来源:网络整理
导读:我经常将TForm后代嵌入另一个TForm后代,如下所示: var Form1: TForm1; Form2: TForm2;begin Form2.Parent := Form1; Form2.BorderStyle := bsNone; Form2.Align := alClient; Form2.Show;end; 通常这很好用,但有时Form2中的控件没有正确对齐.这类问题有一般
我经常将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的分配,但我怀疑这会导致问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读