我有一个delphi应用程序,它使用了一个带有多个TabSheets的PageControl。我还在运行时创建了新的TabSheets,并用预定义框架的实例填充它们。这些框架工作得很好,除了不以TabSheet为中心的美观问题。我尝试过使用Frame.Align := alClient,但没有成功。相关代码如下:
CreateNewPage(3);
NewLimitedChoiceFrame := TLimitedChoiceFrame.Create(NewInputPage);
NewLimitedChoiceFrame.Parent := NewInputPage;CreateNewPage创建一个TabSheet的新实例,并使PageControl成为它的所有者和父对象。结果被赋值给全局变量NewInputPage。
发布于 2012-09-27 09:24:55
要使控件在其父控件中居中,请执行以下操作:
procedure CentreControl(Control: TControl);
begin
Control.Left := (Control.Parent.ClientWidth-Control.Width) div 2;
Control.Top := (Control.Parent.ClientHeight-Control.Height) div 2;
end;调用此函数,传递frame。显然,您需要等到分配了父对象之后才能执行此操作。
如果可以在运行时调整页面控件的大小,请从选项卡表的OnResize事件添加对此函数的调用。或者,由于NGLN points out只需将控件的Anchors设置为[],当控件的父级调整大小时,VCL框架将使控件不居中。
https://stackoverflow.com/questions/12612442
复制相似问题