[Lazarus] clDefault for brushes and fonts

Paul Ishenin ip at kmiac.ru
Fri Nov 19 12:05:50 CET 2010


Hello, Lazarus mailing list.

I want to inform you that starting with r28344 all controls default 
fonts an brushes will have clDefault color instead of clBtnFace/clWindow 
as you had for years.

That was made because non windows widgetsets does not use clBtnFace 
color for forms, clWindow for edit controls and also have different 
ideas regards default font colors 
(http://bugs.freepascal.org/view.php?id=13577, 
http://bugs.freepascal.org/view.php?id=14571, 
http://bugs.freepascal.org/view.php?id=12550).

I believe that I can't foresee all the situations where your code 
depends on this. So I expect you will see some graphic glitches but hope 
not much. Please report them as unswer to this message and to the bug 
tracker.

TCanvas mostly know how to handle clDefault color in different 
situations but not in all.

For example:

TControl.Color := clDefault - is ok - control knows how to handle it.
TControlCanvas.Brush.Color := clDefault - is ok too because 
TControlCanvas has TControl and get retrieve the correct representation 
of clDefault.

But TBitmap.Canvas.Brush.Color := clDefault will result in black color 
because TBitmap knows nothing about control and can't resolve clDefault 
to another color.

To obtain what clDefault color means for TControl use 
TControl.GetDefaultColor() method.

--
Best regards,
Paul Ishenin.





More information about the Lazarus mailing list