Re: [Lazarus] Clear font backgrounds
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/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
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
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
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