1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| //---------------------- В MainForm пишем: ---------------------------
__fastcall TMainForm::TMainForm(TComponent* Owner) : TForm(Owner)
{
unsigned mask = SendMessage(RichEdit1->Handle, EM_GETEVENTMASK, 0, 0);
SendMessage(RichEdit1->Handle, EM_SETEVENTMASK, 0, mask | ENM_LINK);
SendMessage(RichEdit1->Handle, EM_AUTOURLDETECT, true, 0);
RichEdit1->Text = "Выделяем ссылку: http://devportal.ru" ;
}
//-----Далее переходим в Unit1.h ,и там обьявляем в области public: --------
void __fastcall TMainForm::WndProc(Messages::TMessage &Message);
//----------- И где-то в Unit1.cpp пишем: ----------------------
void __fastcall TMainForm::WndProc(Messages::TMessage &Message)
{
if(Message.Msg == WM_NOTIFY)
{
if(((LPNMHDR)Message.LParam)->code == EN_LINK)
{
ENLINK* p = (ENLINK *)Message.LParam;
if(p->msg == WM_LBUTTONDOWN)
{
SendMessage(RichEdit1->Handle, EM_EXSETSEL, 0, (LPARAM)&(p->chrg));
ShellExecute(Handle, "open", RichEdit1->SelText.c_str(),0, 0, SW_SHOWNORMAL);
}
}
}
TForm::WndProc(Message);
}
//------------- PS: Это работает только для RichEdit версии 2.0 и выше.--------------- |