Workaround on TDBNavigator,TSpeedButton bug
Submitted by Issam Ali on Sun, 02/15/2009 - 17:49Some comments on Andreas Hausladen blog asked for help in this TDBNavigator bug QC52439 , I think everybody knows Andress and his great efforts to the Delphi community, so i decided to give Andress a hand on this ;) and here is workaround for this bug:
note: this bug exists in Delphi2007 and Delphi2009
1- open "Buttons" unit.
2- in the TSpeedButton class locate these lines in the Paint Procedure
if not PaintOnGlass then
if Transparent then
ThemeServices.DrawParentBackground(0, Canvas.Handle, nil, False)
...
and modify them like this
if not PaintOnGlass then
if Transparent then
Begin
PerformEraseBackground(Self, Canvas.Handle);
ThemeServices.DrawParentBackground(0, Canvas.Handle, nil, False);
End
...
(re)compile the unit and that will solve the problem and maybe other problems caused by this bug.