[Lazarus] Clear font backgrounds
Martin Friebe
lazarus at mfriebe.de
Mon Apr 13 16:48:08 CEST 2009
Dave Coventry wrote:
> Hi Martin, Thanks for the response.
>
> 2009/4/13 Martin Friebe <lazarus at mfriebe.de>:
>
>> uses LCLType, LCLIntf;
>>
>> SetBkMode(Image1.Canvas.Handle, TRANSPARENT);
>>
>
> Yes, I do seem to have these functions.
>
>
>> You may have to use LCLIntf.ExtTextOut()
>>
>
> I'm not sure I understand.
>
> Do you mean Image1.Canvas.LCLIntf.ExtTextOut()?
>
>
>
Nope,
After "SetBKMode" try to output text as usual, eg with:
"Image1.Canvas.TextOut()". (or whatever it is, I don't recall exactly)
This may already work, I haven't tried it....
What I have used is:
dc := Canvas.Handle;
SetBkMode(dc, TRANSPARENT);
LCLIntf.ExtUTF8Out(dc, X, Y, 0, @ARect, Text, Length, nil);
ARect is a TRect thats specifies where the text goes. Unless you use
clipping, only the top edge matters (since the background is transparent
too)
Example can be found in SynEdit: components\synedit\syntextdrawer.pp
line 1175 (the line refers to the SVN version; use search otherwise);
the BKMode is set in synedits main unit.
Martin
More information about the Lazarus
mailing list