我的问题是 Delphi progies 吓死人 - Windows 中的 Rich Edit(XP 和 XP 之前的版本)。
情况:
我在表单的 OnCreate 中添加了 EM_AUTOURLDETECTION。目标 -> RichEdit1。然后,我有表格,即在显示表格后“折叠”。RichEdit 控件是饱和的、可见的和启用的,但它是“隐藏的”,因为表单窗口已折叠。
我可以展开和折叠表单,使用 Button1 并更改表单的 Constraints 和 Size 属性。
第一次展开表单后,RichEdit1 控件内的 URL 会突出显示。但是,在第二次、第三次、第四次等……我折叠和展开表单之后,RichEdit1 控件不再突出显示 URL。
我试过 EM_SETTEXTMODE 消息,还有 WM_UPDATEUISTATE,还有基本的 WM_TEXT 消息 -> 不走运。看起来这个消息在发送键盘敲击(虚拟键码)时确实有效(启用检测),但在修改文本时无效。另外 - 我正在考虑重写代码以使 RichEdit Control 动态化。这会解决问题吗?
也许解决方案是覆盖 OnPaint / OnDraw 方法以避免折叠或展开表单时突出显示(格式化)丢失?
奇怪的是,我的 Embarcadero 文档说这个功能必须在任何时候文本被修改时工作。为什么它不起作用?
任何帮助表示赞赏。我正在制作这个社区 Wiki,因为这是常见问题,我们可以一起找到解决方案,对吗?:)
另外 - 后续行动和相关问题: