<div dir="ltr"><div>Is there a need for alpha *everywhere* a color is used? From my experience, i've only really needed alpha for TCanvas (so i can draw, e.g. translucent rectangles). I don't think there is a need to add more baggage in controls by introducing yet another mostly redundant FPColor property. Controls that need color with alpha could just provide a ColorAlpha property (for Color property - if a Color property is named Foreground or SecondaryColor then the alpha would be ForegroundAlpha or SecondaryColorAlpha).<br><br>If one doesn't care about compatibility with Delphi, a Color: TFPColor property could be used and Lazarus be made (if it doesn't already) to handle TFPColor similarly to TColor but with a custom dialog that can edit the alpha.<br><br></div>For TCanvas, a TFPColor behind the scenes that is mapped to both TFPColor and TColor properties on access should be enough. Yes, it is redundant, but since most Canvas use is done via code (instead of a visual property editor), i'd say that being able to access RGBA as a single value instead of a value pair is cleaner.<br><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 26, 2016 at 4:52 PM, Martin Schreiber via Lazarus <span dir="ltr"><<a href="mailto:lazarus@lists.lazarus-ide.org" target="_blank">lazarus@lists.lazarus-ide.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Monday 26 September 2016 15:01:04 Graeme Geldenhuys via Lazarus wrote:<br>
> On 2016-09-26 13:52, Martin Schreiber via Lazarus wrote:<br>
> > Or:<br>
> > "<br>
> >  Alpha := ...; // property Alpha: TColor<br>
> > "<br>
> > for alpha per colour channel.<br>
><br>
> In that case I would make it a record type with RedAlpha, GreenAlpha and<br>
> BlueAlpha: Byte. Why?, Because TColor's range is way to large, with most<br>
> of the acceptable values being meaningless.<br>
><br>
</span>Using TColor has the advantage that the same mechanism of RGB-lookup<br>
of "logical" colours as with normal TColor values can be used. TColor with<br>
the MSB = 0 is a special case where the lower bytes contain the RGB values.<br>
Simple and efficient.<br>
In MSEgui the MSB defines the kind of the logical color value, "functional"<br>
(cl_invalid,cl_default..), "mapped" (cl_dkshadow,cl_shadow...), "named RGB"<br>
(cl_black, cl_dkgray...) and "user".<br>
<br>
Martin<br>
<div class="HOEnZb"><div class="h5">--<br>
______________________________<wbr>_________________<br>
Lazarus mailing list<br>
<a href="mailto:Lazarus@lists.lazarus-ide.org">Lazarus@lists.lazarus-ide.org</a><br>
<a href="http://lists.lazarus-ide.org/listinfo/lazarus" rel="noreferrer" target="_blank">http://lists.lazarus-ide.org/<wbr>listinfo/lazarus</a><br>
</div></div></blockquote></div><br></div>