Application.MessageBox 在应用 VCL 主题时剪切消息
Application.MessageBox cutting the message when VCL theme is applied
版本:Delphi柏林 10.1
我遇到了问题,我认为是 vcl 主题错误,当将 vcl 样式主题应用到应用程序时,使用 TApplication.MessageBox 的消息被限制为 256 个字符。
TApplication.MessageBox 包含 298 个字符的文本,未应用 VCL 主题。所有文本都正确显示。
Link: without VCL Style Theme
TApplication.MessageBox 包含 298 个字符的文本,应用了 VCL 主题。文本限制在 256 个字符以内,其余部分被删减。
Link: with any VCL Style Theme (Windows10 example)
我已经分析了Vcl.Styles.pas的TCustomStyleclass,但是我还没有找到解决这种不愉快情况的方法,所以我想得到你的帮助。
编辑:
根据Andreas Rejbrand传递的信息,可以确定是TStyleHook的GetText的缓冲区大小限制在[ 0..256] 的字符。
有了这些信息,我为一种新方法绕道而行,我将缓冲区大小增加到 [0..1023] 的 char 数组,这解决了我的问题。
QC Embarcadero 中报告的错误:
https://quality.embarcadero.com/browse/RSP-14771
和
https://quality.embarcadero.com/browse/RSP-14772
注意:不幸的是,目前无法将 IDE(这将解决问题)更新到较新的版本。
这是一个已知错误。
已在问题 RSP-14772 中向 Embarcadero 报告,该错误已在 Delphi 10.2 中修复。
最好的解决方案是升级到最新的 Delphi 版本,该版本还修复了许多其他错误。
版本:Delphi柏林 10.1
我遇到了问题,我认为是 vcl 主题错误,当将 vcl 样式主题应用到应用程序时,使用 TApplication.MessageBox 的消息被限制为 256 个字符。
TApplication.MessageBox 包含 298 个字符的文本,未应用 VCL 主题。所有文本都正确显示。 Link: without VCL Style Theme
TApplication.MessageBox 包含 298 个字符的文本,应用了 VCL 主题。文本限制在 256 个字符以内,其余部分被删减。 Link: with any VCL Style Theme (Windows10 example)
我已经分析了Vcl.Styles.pas的TCustomStyleclass,但是我还没有找到解决这种不愉快情况的方法,所以我想得到你的帮助。
编辑:
根据Andreas Rejbrand传递的信息,可以确定是TStyleHook的GetText的缓冲区大小限制在[ 0..256] 的字符。 有了这些信息,我为一种新方法绕道而行,我将缓冲区大小增加到 [0..1023] 的 char 数组,这解决了我的问题。
QC Embarcadero 中报告的错误:
https://quality.embarcadero.com/browse/RSP-14771
和
https://quality.embarcadero.com/browse/RSP-14772
注意:不幸的是,目前无法将 IDE(这将解决问题)更新到较新的版本。
这是一个已知错误。
已在问题 RSP-14772 中向 Embarcadero 报告,该错误已在 Delphi 10.2 中修复。
最好的解决方案是升级到最新的 Delphi 版本,该版本还修复了许多其他错误。