代码之家  ›  专栏  ›  技术社区  ›  user13229

richedit vcl和url。解决喷漆问题的方法

  •  0
  • user13229  · 技术社区  · 6 年前

    我的问题是delphi progies在windows(xp和xp之前的版本)中吓死的丰富编辑。

    情况:

    我在表单的创建中添加了em_autourldection。目标->RichEdit1。然后,我有一个表单,在显示表单之后是“折叠”的。richedit控件是状态的、可见的和启用的,但它是“隐藏的”,因为窗体窗口已折叠。

    我可以展开和折叠表单,使用Button1并更改表单约束和大小属性。

    在我第一次展开表单后,richedit1控件中的url将突出显示。但是,在第二,第三,第四等之后…当我折叠和展开表单时,richedit1控件不再突出显示url。

    我试过em_settextmode消息,还有wm_updateistate,还有基本的wm_文本消息->不走运。像这样的merssage在发送键盘笔划(虚拟键盘代码)时确实有效(启用检测),但在文本被修改时不起作用。 另外-我正在考虑重写代码以使richedit控件动态。这能解决问题吗?

    也许解决方案是重写onpaint/ondraw方法,以避免在折叠或展开表单时丢失突出显示(格式设置)?

    奇怪的是,我的embarcadero文档说这个函数必须在文本被修改的任何时候都能工作。为什么不起作用?

    感谢任何帮助。我创建这个社区wiki是因为这是一个常见的问题,我们可以找到解决方案,对吧?:)

    另外-后续行动和相关问题:

    Override OnPaint

    How to autodetect urls in RichEdit 2.0?

    http://www.vbforums.com/archive/index.php/t-59959.html

    1 回复  |  直到 8 年前
        1
  •  0
  •   Ritsaert Hornstra    15 年前

    我不确定,但richedit的窗口是不是在geing从hide到show时重新创建的?如果是这种情况,则可以创建自己的派生trichedit类,覆盖创建windows句柄(twincontrol.create handle)的函数,并在其中添加em_autourldetection。

    推荐文章