在richedit中实现文本url,就和QQ的接受,另存为,取消 一样 。
现在出现了一个问题。如果2个一样的文本比如说 接受 ,接受 ,但是点击的时候我们如何区别这2个信息。
因为第一个接受是一个接受一个请求,第一个接受可能是谈出一个菜单。procedure TMyRichEdit.CNNotify(var Message: TWMNotify);
var
s: string;
Format: TCharFormat2 ;
p: TENLink;
begin
with Message do
begin
case NMHdr^.code of
EN_LINK:
begin
p := TENLink(Pointer(message.NMHdr)^);
with PENLink(NMHdr)^ do
begin
case Msg of
WM_LBUTTONUP:
begin
SendMessage(Handle, EM_EXSETSEL, 0, Longint(@(p.chrg)));
s := GetSelText;
UnURLText(self);
end;
end;
end;
end;
end;
end;end;
上面是部分源代码,已经可以得到点击的文字,但是没有办法却别一样的文字。
现在出现了一个问题。如果2个一样的文本比如说 接受 ,接受 ,但是点击的时候我们如何区别这2个信息。
因为第一个接受是一个接受一个请求,第一个接受可能是谈出一个菜单。procedure TMyRichEdit.CNNotify(var Message: TWMNotify);
var
s: string;
Format: TCharFormat2 ;
p: TENLink;
begin
with Message do
begin
case NMHdr^.code of
EN_LINK:
begin
p := TENLink(Pointer(message.NMHdr)^);
with PENLink(NMHdr)^ do
begin
case Msg of
WM_LBUTTONUP:
begin
SendMessage(Handle, EM_EXSETSEL, 0, Longint(@(p.chrg)));
s := GetSelText;
UnURLText(self);
end;
end;
end;
end;
end;
end;end;
上面是部分源代码,已经可以得到点击的文字,但是没有办法却别一样的文字。
将后面的"0001"设置为隐藏 SelAttributes.Hidden := True;
用户看到是"接受",点击的时候程序判断是"接受0001"