Памажыте!

Тема в разделе "Delphi - FAQ", создана пользователем Guest, 26 ноя 2004.

Статус темы:
Закрыта.
  1. Guest

    Guest Гость

    Как вставить в RichEdit смайлики и выделение ссылки, то есть если я напишу http://codeby.net в Edit, чтобы у мя в RichEdit вылетало как ссылка.
     
  2. Barmutik

    Barmutik Гость

    В качестве самого просто варианта могу посоветовать использовать RxLib - TRxRichEdit... ну или Delphi 7 то Jedi и TJvRichEdit

    Там есть встроенный механизм подсветки урлов...
     
  3. Barmutik

    Barmutik Гость

    А для обычного можно воспользоваться EM_AUTOURLDETECT

    И подсветка УРЛов и не только появится как по мановению волшебной палочки ;)
     
  4. Vagor.ini

    Vagor.ini Гость

    Лови код на ссылку (работает на www и http)
    Код (Text):
    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls, ComCtrls, ShellApi, Richedit;

    type
    TForm1 = class(TForm)
     RichEdit1: TRichEdit;
     procedure FormCreate(Sender: TObject);
    protected
      procedure WndProc(var Message: TMessage); override;
    private
     { Private declarations }
    public
     { Public declarations }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.DFM}

    procedure TForm1.FormCreate(Sender: TObject);
    var
     mask: Word;
    begin
     mask := SendMessage(Handle, EM_GETEVENTMASK, 0, 0);
     SendMessage(RichEdit1.Handle, EM_SETEVENTMASK, 0, mask or ENM_LINK);
     SendMessage(RichEdit1.Handle, EM_AUTOURLDETECT, Integer(True), 0);
     RichEdit1.Text := 'Oi ?oi ou i?inee http://htmlreader.by.ru';
    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;



    end.
    А картинку вставь сам, как домашнее задание;)
     
  5. Vagor.ini

    Vagor.ini Гость

    Barmutik
    Прикольно получмлось пока у меня запостило, ты уже ответил...
     
  6. Barmutik

    Barmutik Гость

    Угу ;) ... только видать человек уже не интересуется вопросом.. потому как никакой реакции от него не последовало ...
     
  7. Guest

    Guest Гость

    Реакции не было потому что я не мог влезь внет! Большое спасибо за информацию!
     
Статус темы:
Закрыта.

Поделиться этой страницей