Delphi XE2 Update 4 TFrame with TPageControl与锚定控件的行为异常

Delphi XE2 Update 4 TFrame with TPageControl与锚定控件的行为异常,delphi,anchor,frame,pagecontrol,Delphi,Anchor,Frame,Pagecontrol,我似乎找不到解决这个问题的办法,我希望这里有人能指导我或帮助我。我将尝试从一个与我的应用程序相同的方式失败的虚拟测试程序中进行解释 我有一个检查了所有锚的框架(左、上、右、下)。框架上有一个与客户端对齐的TPageControl。我在页面控件中定义了一个tabsheet,它包含一个面板。我把面板做得足够大,可以覆盖大部分标签页,除了边缘有一个很好的边距。为了便于查看问题,我将面板的颜色改为黄色。我将面板居中,并检查了面板的所有锚固件 接下来,我创建了一个表单,并将颜色设置为绿色。我将框架放在表单

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

我有一个检查了所有锚的框架(左、上、右、下)。框架上有一个与客户端对齐的TPageControl。我在页面控件中定义了一个tabsheet,它包含一个面板。我把面板做得足够大,可以覆盖大部分标签页,除了边缘有一个很好的边距。为了便于查看问题,我将面板的颜色改为黄色。我将面板居中,并检查了面板的所有锚固件

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

现在我运行测试应用程序,在运行时一切看起来都很好,除了tabsheet上的黄色面板对于tab sheet来说太宽,并且面板的标题没有按预期居中(我确信它居中了,但是面板对于tabsheet来说太宽)。现在,如果调整窗体的大小,它会按预期移动(面板将其位置保留在选项卡工作表和窗体上的选项卡工作表上),但您无法看到面板的全部内容,因为右侧被切断(不是在示例中,因为我们没有在其上放置任何内容,而是在我们的应用程序中)

我们最近将我们的应用程序从Delphi7转换为Delphi XE2,我们只有少量的框架。所有工作正常(与D7相同),但包含选项卡页的除外

XE2中是否存在缺陷,或者我们是否做错了什么

我们想要发生的是,当我们把框架放在一个窗体上,并使其大小适当时,我们希望框架在宽度和高度上扩展。框架上包含的选项卡页内容也是如此。但它已经不起作用了

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

不确定这是否有帮助,但如果更有意义,这是帧的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

我能够通过更改用于对齐面板的技术来解决我的问题。我将面板设置为align alClient,将AlignWithMargins属性设置为true,并为左、上、右和下设置适当的页边距,以实现所需效果,而不是将面板在选项卡工作表中居中,在所有侧面都留有很好的页边距,并设置面板的左、上、右和下定位点。非常感谢@Sertac为我指明了正确的方向。

你能在帖子中放张图片解释布局/你看到了什么吗?@Jan-我添加了一张图片,显示它在IDE中的外观,然后显示它在运行时的外观(无需调整大小)。我本以为这些看起来一模一样。你需要更多的解释吗?你启用了面板上的锚吗?@Marcus-是的,我启用了。这四个都是我想要的,可以通过页面控件调整大小。如果可以的话,我会寄一份样品。我确实在Embarcadero网站上发布了一个示例应用程序。显然是个bug。不要在面板上使用锚。将其对齐设置为“alClient”,设置“AlignWithMargins”,并在“margins”属性中设置好的边距。