// Hiermit werden im TRichEdit Internet-Adressen automatisch
// gekennzeichnet. Beim Klick auf den Link startet der aktuelle Browser.

// Getestet mit D4 unter XP

  ... 
  private 
    { Private-Deklarationen } 
  public 
    procedure WndProc(var Message: TMessage); override; 
  end; 
 
var 
  Form1: TForm1; 
 
implementation 
 
{$R *.DFM} 
 
uses richedit, shellapi; 
 
procedure TForm1.FormCreate(Sender: TObject); 
var 
  EVENTMASK: DWord; 
begin 
  EVENTMASK := SendMessage(RichEdit1.Handle, EM_GETEVENTMASK, 0, 0) or ENM_LINK; 
  SendMessage(RichEdit1.Handle, EM_SETEVENTMASK, 0, EVENTMASK); 
  SendMessage(RichEdit1.Handle, EM_AUTOURLDETECT, Integer(true), 0); 
end; 
 
procedure TForm1.WndProc(var Message: TMessage); 
var 
  p: Pointer; 
  enl: TEnLink; 
begin 
  if Message.Msg = WM_NOTIFY then 
  begin 
    if PNMHDR(Message.LParam).code = EN_LINK then begin 
      p := TWMNotify(Message).NMHdr; 
      enl := TenLink(p^); 
      if enl.msg = WM_LBUTTONDOWN then begin 
        SendMessage(RichEdit1.Handle, EM_EXSETSEL, 0, Integer(@enl.chrg)); 
        ShellExecute(Handle, 'open', PChar(RichEdit1.SelText), 
          nil, nil, SW_SHOWNORMAL); 
      end 
    end 
  end; 
  inherited; 
end;


Zugriffe seit 6.9.2001 auf Delphi-Ecke