我的问题在于Delphi进展恐慌 - Windows中的Rich Edit(XP和XP前版本)。
情况:
我已在表单的OnCreate中添加了EM_AUTOURLDETECTION。目标 - > RichEdit1。然后,我有表格,表现形式后“崩溃”。 RichEdit Control是sattic,visible和enabled,但它是“隐藏”的,因为表单窗口已折叠。
我可以使用Button1和更改表单Constraints和Size属性来展开和折叠表单。
首次展开表单后,RichEdit1控件内的URL会突出显示。但是,在第二次,第三次,第四次等之后......我崩溃并展开形式,RichEdit1控件不再突出显示URL。
我已经尝试了EM_SETTEXTMODE消息,也是WM_UPDATEUISTATE,也是基本的WM_TEXT消息 - >没运气。在发送键盘笔划(虚拟键码)时,它就像这样的merssage真正起作用(启用检测),但是在文本被修改时却没有。 另外 - 我正在考虑重写代码以使RichEdit Control动态化。这会解决这个问题吗?
也许解决方法是覆盖OnPaint / OnDraw方法以避免在折叠或展开表单时突出显示(格式化)丢失?
奇怪的是,我的Embarcadero文档说这个功能必须在任何时候修改文本。为什么它不起作用?
任何帮助表示赞赏。我正在制作这个社区Wiki,因为这是常见的问题,我们可以找到解决方案,对吗? :)
此外 - 后续行动和相关问题:
答案 0 :(得分:0)
我不确定但是从hide到show时,是否重新创建了richedit的窗口?如果是这种情况,您可以创建自己的派生TRichEdit类,重写创建WIndows句柄的函数(TWinControl.CreateHandle)并在那里添加EM_AUTOURLDETECTION。