Thema: Delphi TRichEditWithLinks

Einzelnen Beitrag anzeigen

n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#2

Re: TRichEditWithLinks

  Alt 17. Sep 2005, 12:47
also ich kenne diese komponente zwar nicht, aber vom namen her wird das ein TRichedit sein, indem die links anklickbar sind, oder?

wenn ja, kannste auch ein TRichedit nehmen und folgenden Code:

Delphi-Quellcode:
...
  protected
    procedure WndProc(var Message: TMessage); override;
...

uses Richedit, ShellApi;

procedure TForm1.FormCreate(Sender: TObject);
var
  mask: Word;
begin
  mask := SendMessage(RichEdit1.Handle, EM_GETEVENTMASK, 0, 0);
  SendMessage(RichEdit1.Handle, EM_SETEVENTMASK, 0, mask or ENM_LINK);
  SendMessage(RichEdit1.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;
damit klappts dann auch ..
Gruß Fabi
  Mit Zitat antworten Zitat