delphi – 如何在TRichEdit中设置EM_AUTOURLDETECT后检测URL链接
发布时间:2020-12-15 04:13:12 所属栏目:大数据 来源:网络整理
导读:我正在尝试使用EM_AUTOURLDETECT消息为TRichEdit组件实现URL检测. 我有以下代码的问题 procedure TForm1.Button1Click(Sender: TObject);var Mask: Word;begin Mask := SendMessage(Handle,EM_GETEVENTMASK,0); SendMessage(Handle,EM_SETEVENTMASK,Mask or
我正在尝试使用EM_AUTOURLDETECT消息为TRichEdit组件实现URL检测.
我有以下代码的问题 procedure TForm1.Button1Click(Sender: TObject); var Mask: Word; begin Mask := SendMessage(Handle,EM_GETEVENTMASK,0); SendMessage(Handle,EM_SETEVENTMASK,Mask or ENM_LINK); SendMessage(Handle,EM_AUTOURLDETECT,Integer(True),0); end; 它虽然有效,但我必须在这些设置之后更改TRichEdit的文本,以使其检测已写入文本中的URL.这就是问题,因为我的TRichEdit在应用此功能时处于ReadOnly模式. 执行此代码后,如何强制TRichEdit检测已写入文本中的URL,我该怎么办? 谢谢 解决方法
我前段时间遇到了同样的问题并使用了(相当)一个肮脏的解决方法.
发送 EM_AUTOURLDETECT 消息后,我得到并存储当前选择,然后(重新)设置富编辑的文本并设置之前存储的选择.
procedure TForm1.Button1Click(Sender: TObject); var EventMask: Word; CharRange: TCharRange; begin EventMask := SendMessage(RichEdit1.Handle,0); SendMessage(RichEdit1.Handle,EventMask or ENM_LINK); SendMessage(RichEdit1.Handle,WPARAM(True),EM_EXGETSEL,LPARAM(@CharRange)); SendMessage(RichEdit1.Handle,WM_SETTEXT,LPARAM(RichEdit1.Text)); SendMessage(RichEdit1.Handle,EM_EXSETSEL,LPARAM(@CharRange)); end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |