You've already forked lazarus-ccr
richmemo: adding link setting code richedit 41 and earlier
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6289 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@@ -198,6 +198,12 @@ type
|
|||||||
class procedure SetScroll(RichEditWnd: Handle; const pt: TPoint); virtual;
|
class procedure SetScroll(RichEditWnd: Handle; const pt: TPoint); virtual;
|
||||||
end;
|
end;
|
||||||
TRichManagerClass = class of TRichEditManager;
|
TRichManagerClass = class of TRichEditManager;
|
||||||
|
|
||||||
|
{ TRichEditManagerWinXP }
|
||||||
|
|
||||||
|
TRichEditManagerWinXP = class(TRichEditManager)
|
||||||
|
class procedure SetTextUIStyle(RichEditWnd: Handle; const ui: TTextUIParam); override;
|
||||||
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
RichEditManager : TRichManagerClass = nil;
|
RichEditManager : TRichManagerClass = nil;
|
||||||
@@ -338,6 +344,27 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ TRichEditManagerWinXP }
|
||||||
|
|
||||||
|
class procedure TRichEditManagerWinXP.SetTextUIStyle(RichEditWnd: Handle;
|
||||||
|
const ui: TTextUIParam);
|
||||||
|
var
|
||||||
|
st : TSetTextEx;
|
||||||
|
linkrtf : String;
|
||||||
|
txt : WideString;
|
||||||
|
txtrtf : String;
|
||||||
|
begin
|
||||||
|
if RichEditWnd = 0 then Exit;
|
||||||
|
|
||||||
|
txt := GetTextW(RichEditWnd, true);
|
||||||
|
st.codepage:=CP_UTF8;
|
||||||
|
st.flags:=ST_SELECTION;
|
||||||
|
txtrtf:=UTF8Encode(txt);
|
||||||
|
linkrtf:=Format('{\rtf1{\field{\*\fldinst{ HYPERLINK "%s"}}{\fldrslt{%s}}}}',
|
||||||
|
[ui.linkref, txtrtf]);
|
||||||
|
SendMessage(RichEditWnd, EM_SETTEXTEX, WPARAM(@st), LParam(@linkrtf[1]));
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ TRichEditManager }
|
{ TRichEditManager }
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user