Re: [Lazarus] Clear font backgrounds

2009-04-13 Thread Dave Coventry
2009/4/13 Martin Friebe :
> 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

No, it doesn't, I'm afraid.

> 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.

I've found an easier way:

Set Image1.Canvas.Bruch.Style:=bsClear.

Works fine.

___
Lazarus mailing list
Lazarus@lazarus.freepascal.org
http://www.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Clear font backgrounds

2009-04-13 Thread Dave Coventry
2009/4/13 Martin Friebe :
> 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

No, it doesn't, I'm afraid.

> 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.

I've found an easier way:

Set Image1.Canvas.Bruch.Style:=bsClear.

Works fine.

___
Lazarus mailing list
Lazarus@lazarus.freepascal.org
http://www.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Clear font backgrounds

2009-04-13 Thread Martin Friebe
Dave Coventry wrote:
> Hi Martin, Thanks for the response.
>
> 2009/4/13 Martin Friebe :
>   
>> 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


___
Lazarus mailing list
Lazarus@lazarus.freepascal.org
http://www.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Clear font backgrounds

2009-04-13 Thread Dave Coventry
Hi Martin, Thanks for the response.

2009/4/13 Martin Friebe :
> 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()?

___
Lazarus mailing list
Lazarus@lazarus.freepascal.org
http://www.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Clear font backgrounds

2009-04-13 Thread Martin Friebe
Dave Coventry wrote:
> Hi,
>
> I'm using Image1.Convas.TextOut and I need the font background to be clear.
>
> Does anyone know how to achieve this?
>   
uses LCLType, LCLIntf;

  SetBkMode(Image1.Canvas.Handle,  TRANSPARENT);

You may have to use  LCLIntf.ExtTextOut()

Best Regards
Martin

___
Lazarus mailing list
Lazarus@lazarus.freepascal.org
http://www.lazarus.freepascal.org/mailman/listinfo/lazarus