将“父级”更改为“自定义表单”后,“许可证备忘录

时间:2014-04-10 09:43:13

标签: inno-setup

我已创建自定义表单(CreateCustomForm)并将LicenseMemo.Parent更改为此表单。 不幸的是,结果与LicenseFile RTF始终显示为纯文本完全不符合预期 - 所有RTF格式都消失了(字体,字体样式,字体大小等)。

我应该在更改它的父级后为LicenseMemo设置其他格式吗?

1 个答案:

答案 0 :(得分:2)

发生这种情况是因为当您重新为控件创建父级时,控件的窗口会在内部重新创建,因为TRichEditViewer组件无论如何都不会存储RTF流,也不会重新加载它当重新创建控件时,它只是丢失其RTF内容并仅显示存储的纯文本。

这种情况的另一个坏处是即使RTFText属性也没有实现从现有控制实例读取RTF流,因此在重新为父母设置之前甚至无法自己保存RTF。稍后恢复它。

有一种方法可以使用EM_STREAMOUT消息来获取RTF流,但由于缺少指针缺少支持,因此Inno Setup Pascal Script最终可能无法完成这项工作。

我能想到的唯一简单的解决方法是在重新设置控件之后重新加载RTF内容文件。我知道您需要将许可证文件包含在[Files]条目中并手动提取,但这是最不痛苦的方式。