<div dir="auto">Thanks. If transparency works fine the best should be deprecate the component.</div><div class="gmail_extra"><br><div class="gmail_quote">El feb 8, 2018 5:08 PM, "Ondrej Pokorny via Lazarus" <<a href="mailto:lazarus@lists.lazarus-ide.org">lazarus@lists.lazarus-ide.org</a>> escribió:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">First of all, the image list became multi-resolution. You have the new class TCustomImageListResolution that is the new "TCustomImageList". You have to move your custom code there.<br>
<br>
On 08.02.2018 16:02, lainz via Lazarus wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi, I have a component BGRAImageList that fixes basically the alpha channels<br>
of the regular ImageList on Linux using BGRABitmap.<br>
<br>
I did not code that component, but I'm the one that updates the package.<br>
<br>
Sources:<br>
<a href="https://github.com/bgrabitmap/bgracontrols/blob/master/bgraimagelist.pas" rel="noreferrer" target="_blank">https://github.com/bgrabitmap/<wbr>bgracontrols/blob/master/bgrai<wbr>magelist.pas</a><br>
<br>
It works fine in 1.8, but in trunk there are changes like:<br>
<br>
1.8<br>
TCustomImageList = class(TLCLReferenceComponent)<br>
<br>
1.9 is TCustomImageList = class(TLCLComponent), so the method<br>
ReferenceNeeded is not available.<br>
<br>
Questions:<br>
- *What does ReferenceNeeded, and if it is necessary on 1.9*.<br>
</blockquote>
<br>
On win32 you need a handle for WinAPI native controls. The real imagelist code (along with ReferenceNeeded method) was moved into TCustomImageListResolution.<br>
<br>
You have to move all your code into a TCustomImageListResolution descendant and register it in TCustomImageList.GetResolution<wbr>Class.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Another is this:<br>
<br>
1.8<br>
procedure Draw(ACanvas: TCanvas; AX, AY, AIndex: Integer; ADrawingStyle:<br>
TDrawingStyle; AImageType: TImageType;<br>
       ADrawEffect: TGraphicsDrawEffect); overload; virtual;<br>
<br>
1.9<br>
procedure Draw(ACanvas: TCanvas; AX, AY, AIndex: Integer; ADrawingStyle:<br>
TDrawingStyle; AImageType: TImageType;<br>
       ADrawEffect: TGraphicsDrawEffect); overload;<br>
<br>
In 1.9 the virtual was removed and I can't use override anymore.<br>
</blockquote>
<br>
Again, override TCustomImageListResolution.Dra<wbr>w<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
My question is *if the method still will be called instead of the LCL one in<br>
1.9 without using override*. I know this is a basic of OOP but I need a bit<br>
of help because I never use virtual and overload.<br>
</blockquote>
<br>
Override TCustomImageListResolution.Dra<wbr>w<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Another question: If I remove override to compile in 1.9, what happens in<br>
1.8?<br>
</blockquote>
<br>
The new image list from 1.9 is not compatible with 1.8. You have to release a new version for 1.9+ only.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I never use IFDEF LCL_FULLVERSION and don't know how to use it, any chances<br>
to have 2 different methods, one with override and other without, one for<br>
1.8 and one for 1.9 or newer?<br>
<br>
And the big question:<br>
<br>
*Transparency is now or will be fixed on linux, so I don't need this<br>
component anymore and I can archive it?*<br>
</blockquote>
<br>
I didn't change anything about transparency but for me transparency works fine on both Gtk2 and Qt Linux. (I don't know any other details.)<br>
<br>
Ondrej<br>
-- <br>
______________________________<wbr>_________________<br>
Lazarus mailing list<br>
<a href="mailto:Lazarus@lists.lazarus-ide.org" target="_blank">Lazarus@lists.lazarus-ide.org</a><br>
<a href="https://lists.lazarus-ide.org/listinfo/lazarus" rel="noreferrer" target="_blank">https://lists.lazarus-ide.org/<wbr>listinfo/lazarus</a><br>
</blockquote></div></div>