Delphi   发布时间:2022-04-11  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了delphi – 如何在TRichEdit中设置EM_AUTOURLDETECT后检测URL链接?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用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,我该怎么办?
我在看documentation,但没有提到这样的事情.

谢谢

解决方法

我前段时间遇到了同样的问题并使用了(相当)一个肮脏的解决方法.
发送 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;

大佬总结

以上是大佬教程为你收集整理的delphi – 如何在TRichEdit中设置EM_AUTOURLDETECT后检测URL链接?全部内容,希望文章能够帮你解决delphi – 如何在TRichEdit中设置EM_AUTOURLDETECT后检测URL链接?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: