[Lazarus] High-DPI TImageList

lainz leandrodiazoe at gmail.com
Thu Feb 8 16:02:41 CET 2018


Hi, I have a component BGRAImageList that fixes basically the alpha channels
of the regular ImageList on Linux using BGRABitmap.

I did not code that component, but I'm the one that updates the package.

Sources:
https://github.com/bgrabitmap/bgracontrols/blob/master/bgraimagelist.pas

It works fine in 1.8, but in trunk there are changes like:

1.8
TCustomImageList = class(TLCLReferenceComponent)

1.9 is TCustomImageList = class(TLCLComponent), so the method
ReferenceNeeded is not available.

Questions:
- *What does ReferenceNeeded, and if it is necessary on 1.9*.

Another is this:

1.8
procedure Draw(ACanvas: TCanvas; AX, AY, AIndex: Integer; ADrawingStyle:
TDrawingStyle; AImageType: TImageType;
      ADrawEffect: TGraphicsDrawEffect); overload; virtual;

1.9
procedure Draw(ACanvas: TCanvas; AX, AY, AIndex: Integer; ADrawingStyle:
TDrawingStyle; AImageType: TImageType;
      ADrawEffect: TGraphicsDrawEffect); overload;

In 1.9 the virtual was removed and I can't use override anymore.

My question is *if the method still will be called instead of the LCL one in
1.9 without using override*. I know this is a basic of OOP but I need a bit
of help because I never use virtual and overload.

Another question: If I remove override to compile in 1.9, what happens in
1.8?

I never use IFDEF LCL_FULLVERSION and don't know how to use it, any chances
to have 2 different methods, one with override and other without, one for
1.8 and one for 1.9 or newer?

And the big question:

*Transparency is now or will be fixed on linux, so I don't need this
component anymore and I can archive it?*



--
Sent from: http://free-pascal-lazarus.989080.n3.nabble.com/


More information about the Lazarus mailing list