gpt4 book ai didi

delphi - 将一个 TForm 嵌入另一个 TForm 时如何避免出现问题?

转载 作者:行者123 更新时间:2023-12-03 14:52:34 27 4
gpt4 key购买 nike

我经常将一个 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com