首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VCL表单中PageControl上带有锚点的错误自动缩放控件

VCL表单中PageControl上带有锚点的错误自动缩放控件
EN

Stack Overflow用户
提问于 2018-01-22 02:47:41
回答 2查看 497关注 0票数 0

我在窗体上为不同的显示器DPI设置自动缩放控件时遇到了问题。Rad Studio 10.2 Tokio。"Enable high-dpi“打开。我在设计时将窗体的PixelsPerInch设置为96。我在表单上放置了TPageControl,在其中创建了一个TTabSheet页面,在页面上放置了一些控件,并将它们的锚属性设置为akRight (除了akLeft和akTop之外)。当程序在分辨率为120DPI的显示器上运行时,这些控件的右边缘显示为超出PageControl的右边界,因此控件的右部分不可见。如果我关闭了akRight,那么控件就会被正确缩放。但我需要这些锚点在运行时正确地调整窗体的大小。如何解决这个问题?

PS该错误已在Rad Studio 10.3中修复

EN

回答 2

Stack Overflow用户

发布于 2018-01-23 13:05:04

针对TFont的C++生成器帮助称:

PixelsPerInch属性仅影响打印机字体,不应修改。

若要修改字体的大小,请使用size或Height属性。

票数 0
EN

Stack Overflow用户

发布于 2018-11-01 21:04:55

我遇到了同样的问题,一个应用程序拥有无数的TPageControl,TEdit,TMemo和其他在高dpi模式下未对齐的控件。

我解决这个问题的第一种方法是尝试将TForm传递给一个名为FixFormScaling()的过程,我打算在该过程中修复所有有错误的伸缩内容。但我失败了很多,因为包含的控件有许多不同的对齐,我不能在一个简短的过程中合理地处理它们。

第二种方法似乎是可行的:在每个TTabSheet上,我放置一个具有以下属性的TPanel:

代码语言:javascript
复制
Align=alClient
BevelOuter=bvNone
Name=pnlDpiHelper<NameOfTabsheet>
ShowCaption=False

我正在移动所有其他控件(TEdit、TMemo等)到那个TPanel上。在高dpi模式下的结果是现在一切似乎都被正确缩放了!

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

https://stackoverflow.com/questions/48370423

复制
相关文章

相似问题

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