[Lazarus] Question about TRichMemo
silvioprog
silvioprog at gmail.com
Thu Nov 3 21:17:40 CET 2016
On Thu, Nov 3, 2016 at 4:48 PM, Dmitry Boyarintsev via Lazarus <
lazarus at lists.lazarus-ide.org> wrote:
> On Thu, Nov 3, 2016 at 3:36 PM, silvioprog via Lazarus <
> lazarus at lists.lazarus-ide.org> wrote:
>
>> There's ALinkRef parameter, that serves this particular purpose.
>>>
>> Naturally, LinkRef should end up in TLinkMouseInfo .
>>>
>>
>> Perfect.
>>
> Now, I take that back.
> "ref" information might need to go to some other, rather than
> TLinkMouseInfo.
> Instead, TLinkMouseInfo should contain information about the cursor (x,y,
> shift state, etc)
> An extra parameter could be added that would contain LinkInformation
>
Do you mean about declaring an additional parameter something like this?:
RichMemo1LinkAction(Sender: TObject; ALinkAction: TLinkAction; AMouseInfo:
TLinkMouseInfo; *ATextInfo: TLinkTextInfo*; ALinkStart, ALinkLen: Integer);
If so, it seems a great idea, and the issue #30857 needs some additional
patches. :-)
I have a question regarding SetTextUIStyle for WinVCL,
>>
> Why WinVCL? :)
>
Nothing special, just because some commented code there hehe... xD But what
is the main purpose about SetTextUIStyle, it retrieves only links, or links
and formatted texts? :-)
what about to change it to?
>>
>> txt := GetTextUtf8(RichEditWnd, true);
>> st.codepage:=CP_UTF8;
>> st.flags:=ST_SELECTION;
>> linkrtf:=Concat('{\rtf1{\field{\*\fldinst{ HYPERLINK
>> "',ui.linkref,'"}}{\fldrslt{ ',txt,' }}}}');
>> SendMessage(RichEditWnd, EM_SETTEXTEX, WPARAM(@st),
>> LParam(@linkrtf[1]));
>>
>
> That's fine. You just need to make sure that parameters are RTF escaped.
>
Indeed. We need to fix that.
Also, newer versions of RichEdit do provide API for Link management without
> need of going into raw RTF.
>
> But that's why TRichEditManager class is there (even through there's only
> one implementation available)
>
Yes. But I have an idea, we should keep Get/SetTextUIStyle and Get/SetLink
supporting only raw links (as implemented above) because it is supported in
mostly of richedit versions, but in future versions we should add two new
Get/SetURL methods, available only on supported richedit APIs and providing
all URL features. (see MS post talking about a SetURL method
<https://blogs.msdn.microsoft.com/murrays/2009/09/24/richedit-friendly-name-hyperlinks/>
(ITextRange::SetURL),
so we can follow the same concept :-) )
--
Silvio Clécio
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20161103/57bf0b0d/attachment.html>
More information about the Lazarus
mailing list