我已创建自定义表单(CreateCustomForm
)并将LicenseMemo.Parent
更改为此表单。
不幸的是,结果与LicenseFile
RTF始终显示为纯文本完全不符合预期 - 所有RTF格式都消失了(字体,字体样式,字体大小等)。
我应该在更改它的父级后为LicenseMemo设置其他格式吗?
答案 0 :(得分:2)
发生这种情况是因为当您重新为控件创建父级时,控件的窗口会在内部重新创建,因为TRichEditViewer
组件无论如何都不会存储RTF流,也不会重新加载它当重新创建控件时,它只是丢失其RTF内容并仅显示存储的纯文本。
这种情况的另一个坏处是即使RTFText
属性也没有实现从现有控制实例读取RTF流,因此在重新为父母设置之前甚至无法自己保存RTF。稍后恢复它。
有一种方法可以使用EM_STREAMOUT
消息来获取RTF流,但由于缺少指针缺少支持,因此Inno Setup Pascal Script最终可能无法完成这项工作。
我能想到的唯一简单的解决方法是在重新设置控件之后重新加载RTF内容文件。我知道您需要将许可证文件包含在[Files]
条目中并手动提取,但这是最不痛苦的方式。