[Lazarus] qurstion in Button Alignment

ik idokan at gmail.com
Tue Feb 23 09:53:27 CET 2010


Hi Pierre and Lazarus List

see my comments below...

Fond Regards,
Peter Eric (aka 'pew') WILLIAMS
from Hobart, Tasmania, Australia -- phone (03) 6236-9675

My free website is: http://pewtas.googlepages.com  (or)
http://tinyurl.com/yuyejs

(please visit my free website and let me know what you think about it.)

2010/2/22 Pierre Delore <dpliste at free.fr>:
> hi all,
>
> Thanks for your answers.
>
> I forgot to specify that I'm in Win32 with 0.9.28.2 (not a snapshot).
>
> Peter, I uncommented the 2 lines and I replaced clGreen by clWhite. The
> image is displayed correctly.
> I changed the background of the image and I set it to blue (FF0000). The
> image is displayed correctly.
> I also replace the clWhite by clBlue. The image is displayed correctly.
>

>From Delphi graphical game I created, which I converted to Lazarus ...
some time ago,

( code from the attached file "uFixedWidthFonts.pas" )

const
  Rects_low = 0;
  Rects_high = 255;

type
  // these lines "borrowed" from SDL.pas
  SInt16 = smallint;
  UInt16 = word;

// [ALVAROGP] TSDL_Rect converted to class, to avoid warnings
  TSDL_Rect = class
  public
    x, y: SInt16;
    w, h: UInt16;
  end;

  // end lines from SDL

  PFixedFont = ^TFixedFont;
  TFixedFont = object
  private
    Image: TBitmap;
// [ALVAROGP] Rects redefined as array of class TSDL_Rect
    Rects: array[Rects_low..Rects_high] of TSDL_Rect;
//...
    TransparentColor : Tcolor;
//...

//code...
  // Determine the transparent color
  TransparentColor := Image.Canvas.Pixels[Rects[Rects_low].x +
    Rects[Rects_low].w, 0];

Note: the above line can be simplified as:

// this will return a TColor of the colour of the pixel @ location [0,0] of
// TBitmap e.g. the top left corner pixel of the image.
// You could choose ANY x,y pixel of the image to be the background colour.

TransparentColor := Image.Canvas.Pixels[0, 0];

// set colour of the Canvas Brush to TransparentColor
Canvas.Brush.Color := TransparentColor;

// now fill the background of the Canvas with the TransparentColor
      Canvas.FillRect(0,0,pwidth,pheight);

// my modifications to your code *should* make the background of the
// Canvas to the same colour as the TBitmap's colour at pixel [0,0]
// before you draw Bitmap -- with the next line of code.

>       Canvas.Draw(0, 0, Bitmap);
// or with my var declarations it would be:
  Canvas.Draw(0, 0, Image);

// hopefully now Bitmap will be drawn on a clWhite background... which
is the effect you said in your email you're wanting.

>     finally
>       Bitmap.Free;
// or with my var declarations it would be:
         Image.Free
>     end;
>
>   inherited Paint;
> end;


> Somebody can explain me why I had this problem?
>
<snip>
>
> Regards
>
> --
> Pierre Delore
>
> http://datalinkwristapps.free.fr
> http://dpsite.free.fr
>
<snip>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: uFixedWidthFonts.pas
Type: text/x-pascal
Size: 6283 bytes
Desc: not available
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20100222/eb3db41a/attachment-0002.pas>


More information about the Lazarus mailing list