Рабочий пример:
| Код | unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, CommCtrl, RichEdit;
type TRichEdit = class(ComCtrls.TRichEdit) private FLinkIsAutodetect: Boolean; procedure SetLinkIsAutodetect(Value: Boolean); protected procedure CreateWnd; override; public constructor Create(Aowner: TComponent); override; published property LinkIsAutodetect: Boolean read FLinkIsAutodetect write SetLinkIsAutodetect default False; end;
TForm1 = class(TForm) Button1: TButton; RichEdit1: TRichEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
{ TRichEdit }
constructor TRichEdit.Create(Aowner: TComponent); begin inherited Create(AOwner); FLinkIsAutodetect := False; end;
procedure TRichEdit.CreateWnd; begin inherited; SendMessage(Handle, EM_SETEVENTMASK, 0, SendMessage(Handle, EM_GETEVENTMASK, 0, 0) or ENM_LINK); end;
procedure TRichEdit.SetLinkIsAutodetect(Value: Boolean); begin if FLinkIsAutodetect <> Value then if SendMessage(Handle, EM_AUTOURLDETECT, WPARAM(Value), 0) = 0 then FLinkIsAutodetect := Value; end;
procedure TForm1.Button1Click(Sender: TObject); begin RichEdit1.LinkIsAutodetect := True; end;
end.
|
|