gpt4 book ai didi

delphi - XE2 Update 4 TFrame 与 TPageControl 与锚定控件的行为很奇怪

转载 作者:行者123 更新时间:2023-12-02 05:33:09 27 4
gpt4 key购买 nike

我似乎无法找到解决此问题的方法,希望这里有人可以指导我或帮助我。我将尝试从我所做的一个虚拟测试程序中进行解释,该程序以与我的应用程序相同的方式失败。

我的框架已检查所有 anchor (左、上、右、下)。框架上有一个 TPageControl 与客户端对齐。我在页面控件中定义了一个包含单个面板的选项卡。我将面板做得足够大,以覆盖大部分选项卡,但边缘周围留有很好的边距。为了更容易看到问题,我将面板的颜色更改为黄色。我将面板居中并检查了面板的所有 anchor 。

接下来我创建了一个表单并将颜色设置为绿色。我将框架放在表单上,​​通过颜色差异,可以很容易地看到表单的绿色背景、选项卡(在我的例子中基本上是白色)和选项卡上的黄色面板。一切看起来都如预期。

现在我运行测试应用程序,在运行时一切看起来都很好,除了选项卡上的黄色面板对于选项卡来说太宽,并且面板的标题没有按预期居中(我确信它是居中的,但面板对于选项卡来说太宽了)。现在,如果您调整表单的大小,它会按预期移动(面板保持其在选项卡表和表单上的选项卡表上的位置),但您只是看不到面板的完整内容,因为右侧被切断(不在示例中,因为我们没有在上面添加任何内容,但绝对在我们的应用程序中)。

我们最近将应用程序从 Delphi 7 转换为 Delphi XE2,但我们只有少数框架。除了那些包含选项卡的工作外,一切正常(与 D7 相同)。

XE2 是否存在错误,或者我们做错了什么?

我们希望发生的是,当我们将框架放到表单上并调整其大小时,我们希望框架的宽度和高度能够扩展。对于框架上包含的选项卡的内容也是如此。但它不再起作用了。

这是一个已知问题还是有解决方法?

design time view and runtime view

不确定这是否有帮助,但这是框架的 DFM(如果它更有意义):

  object Frame3: TFrame3
Left = 0
Top = 0
Width = 200
Height = 100
Anchors = [akLeft, akTop, akRight, akBottom]
TabOrder = 0
object pgc1: TPageControl
Left = 0
Top = 0
Width = 200
Height = 100
ActivePage = ts1
Align = alClient
TabOrder = 0
object ts1: TTabSheet
Caption = 'TPageControl'
DesignSize = (
192
72)
object pnl1: TPanel
Left = 3
Top = 10
Width = 180
Height = 51
Anchors = [akLeft, akTop, akRight, akBottom]
Caption = 'pnl1'
Color = clYellow
ParentBackground = False
TabOrder = 0
end
end
end

最佳答案

我能够通过更改用于对齐面板的技术来解决我的问题。我没有将面板在选项卡中居中,并在所有边上设置漂亮的边距,并设置面板的左、上、右和下 anchor ,而是将面板设置为对齐 alClient,将 AlignWithMargins 属性设置为 true 并设置适当的边距左、上、右、下,以达到想要的效果。非常感谢@Sertac 为我指明了正确的方向。

关于delphi - XE2 Update 4 TFrame 与 TPageControl 与锚定控件的行为很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19323345/

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