2010-01-31 29 views
0

我的问题是与Delphi的事情吓到死亡 - 在Windows(XP和XP之前的版本)丰富的编辑。RichEdit VCL和URL。 OnPaint问题的解决方法

现状:

我已经在形式的OnCreate中添加EM_AUTOURLDETECTION。目标 - > RichEdit1。然后,我有形式,那是在展示形式之后“折叠”的。 RichEdit控件是透明的,可见并启用,但它是“隐藏”的,因为表单窗口已折叠。

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

第一次展开表单后,突出显示RichEdit1控件中的URL。但是,在第二,第三,第四等...次我崩溃并展开窗体后,RichEdit1控件不再突出显示URL。

我试过EM_SETTEXTMODE消息,也WM_UPDATEUISTATE,也基本WM_TEXT消息 - >没有运气。它可以像发送键盘笔划(虚拟键码)时的merssage真正起作用(启用检测),但不会在文本被修改时使用。 另外 - 我想重写代码,使RichEdit控制动态。这会解决问题吗?

可能的解决方案是重写OnPaint/OnDraw方法,以避免在折叠或展开表单时突出显示(格式)丢失?

奇怪的是,我的英巴卡迪诺文档说这个功能必须在任何时候文本已被修改。为什么它不起作用?

任何帮助表示赞赏。我在做这个社区维基,因为这是常见的问题,并为我们寻找解决方案,对不对? :)

而且 - 跟进和相关的问题:

Override OnPaint

How to autodetect urls in RichEdit 2.0?

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

回答

0

我不知道,但为躲geing时重新流入RichEdit窗口以显示?如果是这种情况,您可以创建自己的派生的TRichEdit类,重写创建WIndows句柄(TWinControl.CreateHandle)的函数并在其中添加EM_AUTOURLDETECTION。