对 TMonthCalendar 使用 ScaleBy 方法
Posted
技术标签:
【中文标题】对 TMonthCalendar 使用 ScaleBy 方法【英文标题】:using ScaleBy method for TMonthCalendar 【发布时间】:2013-10-29 01:22:41 【问题描述】:我正在使用 ScaleBy 方法在运行时放大/缩小我的应用程序的表单。它适用于几乎所有组件,但不适用于 TMonthCalendar。 有没有办法使用 ScaleBy 或任何其他方法来放大 TMonthCalendar?
【问题讨论】:
v6 控件考虑视觉样式的字体大小。在尝试缩放之前尝试调用 SetWindowTheme(MonthCalendarHandle, '', '') 以获得 v5 控件。 例如:ScaleBy(200, 100);
MonthCalendar1.RecreateWnd;
SetWindowTheme(MonthCalendar1.Handle, '', '');
嘿@Sertac,你的回答很有帮助。我曾尝试禁用主题,但它不起作用。 MonthCalendar 也不会 RecreatWnd。也许它受到保护。无论如何,我找到了解决方案并将其作为答案发布,但是我失去了视觉风格,但总比没有好!谢谢。
不客气!实际上,访问受保护的 RecreateWnd 方法需要一些技巧,您的解决方案很好。
【参考方案1】:
它可以工作;如果你禁用主题。您还需要更改尺寸以使其正常工作
SetWindowTheme(MonthCalendar1.Handle, '', '');
MonthCalendar1.ScaleBy(190, 100);
MonthCalendar1.Width := MonthCalendar1.Width + 1;
MonthCalendar1.Width := MonthCalendar1.Width - 1;
感谢@Sertac 的提示
【讨论】:
【参考方案2】:MonthCalendar 控件具有固定大小,您无法更改此大小.. 低宽尺寸定义为 225 像素,高宽尺寸定义为 450 像素。
【讨论】:
TMonthCalendar
是Month Calendar
Windows 控件的包装器,它取决于系统的大小。
是的,我认为这是真的,我提到了从我的系统获得的值。以上是关于对 TMonthCalendar 使用 ScaleBy 方法的主要内容,如果未能解决你的问题,请参考以下文章
在 Delphi 中更改 TMonthCalendar 的状态/格式
对条形图中的 x 轴使用序数刻度 ('d3.scale.ordinal')
R语言使用caret包的preProcess函数进行数据预处理:对所有的数据列进行scale标准化(数据列中的数值除以标准差)设置method参数为scale
R语言使用caret包的preProcess函数进行数据预处理:对所有的数据列进行scale标准化(数据列中的数值除以标准差)设置method参数为scale