我似乎找不到解决此问题的方法,希望这里有人可以指导我或帮助我。我将尝试从我所做的虚拟测试程序中进行解释,该程序以与我的应用程序相同的方式失败。
我的框架检查了所有锚点(左、上、右、下)。对齐客户端的框架上有一个 TPageControl。我在包含单个面板的页面控件中定义了一个选项卡。我把面板做得足够大,可以覆盖大部分标签页,除了边缘有一个很好的边距。为了方便查看问题,我将面板的颜色更改为黄色。我将面板居中并检查了面板的所有锚点。
接下来我创建了一个表单并将颜色设置为绿色。我将框架放在表单上,并且由于颜色差异,很容易看到表单的绿色背景、标签页(在我的情况下基本上是白色的)和标签页上的黄色面板。一切看起来都符合预期。
现在我运行测试应用程序,在运行时一切看起来都很好,除了选项卡上的黄色面板对于选项卡来说太宽并且面板的标题没有按预期居中(我确定它是居中的,但面板也是如此宽的标签页)。现在,如果您调整表单的大小,它会按预期移动(面板保持其在选项卡表上的位置和表单上的选项卡表)但您无法看到面板的全部内容,因为右侧被切断(不在示例中,因为我们没有在上面放任何东西,但肯定在我们的应用程序中)。
我们最近将我们的应用程序从 Delphi 7 转换为 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