delphi RichEdit 加入链接  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi RichEdit 加入链接


unit Unit1;

interface

uses
windows, messages, sysutils, variants, classes, graphics, controls, forms,

dialogs, stdctrls, comctrls,richedit,shellapi;


type
  TForm1 = class(TForm)
    Button1: TButton;
    RichEdit1: TRichEdit;
    procedure wndproc(var message : tmessage); override;
   procedure  InitRichEditURLDetection(re:TRichEdit);
    procedure Button1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.InitRichEditURLDetection(re: TRichEdit);
var

mask: Word;

begin

mask := SendMessage(RE.Handle, EM_GETEVENTMASK, 0,0);

SendMessage(RE.Handle, EM_SETEVENTMASK,0, mask or ENM_LINK);

SendMessage(RE.Handle,EM_AUTOURLDETECT, Integer(True), 0);

 


end;

procedure TForm1.wndproc(var message: tmessage);

var

p: tenlink;

strurl: string;

begin

if (message.msg = wm_notify) then

begin

if (pnmhdr(message.lparam).code = en_link) then

begin

p := tenlink(pointer(twmnotify(message).nmhdr)^);

if (p.msg = wm_lbuttondown) then

begin

sendmessage(richedit1.handle, em_exsetsel, 0, longint(@(p.chrg)));


strurl := richedit1.seltext;

shellexecute(handle, 'open', pchar(strurl), 0, 0, sw_shownormal);

end

end

end;

inherited;

 

end;

procedure TForm1.Button1Click(Sender: TObject);
 
var
s: string;
begin
InitRichEditURLDetection(RichEdit1);
s:='http://www.180it.com' + #13#10 +
'mailto:haokucn@163.com' + #13#10;

RichEdit1.Text := s;
end;

end.


推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.034943103790283 seconds