首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使TTabSheet内的T帧居中;

使TTabSheet内的T帧居中;
EN

Stack Overflow用户
提问于 2012-09-27 08:37:16
回答 1查看 727关注 0票数 1

我有一个delphi应用程序,它使用了一个带有多个TabSheetsPageControl。我还在运行时创建了新的TabSheets,并用预定义框架的实例填充它们。这些框架工作得很好,除了不以TabSheet为中心的美观问题。我尝试过使用Frame.Align := alClient,但没有成功。相关代码如下:

代码语言:javascript
复制
CreateNewPage(3);
NewLimitedChoiceFrame := TLimitedChoiceFrame.Create(NewInputPage);
NewLimitedChoiceFrame.Parent := NewInputPage;

CreateNewPage创建一个TabSheet的新实例,并使PageControl成为它的所有者和父对象。结果被赋值给全局变量NewInputPage

EN

回答 1

Stack Overflow用户

发布于 2012-09-27 09:24:55

要使控件在其父控件中居中,请执行以下操作:

代码语言:javascript
复制
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框架将使控件不居中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12612442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档