VCL Style

Since the VCL style is applied in HtmlHint and AdvSpinEdit, I have some unexpected colors applied.

My tooltips have a grey background while all others backgrounds are white.
My top/bottom AdvSpinEdit buttons are also grey when the component is disabled.

Could you tell me what are the corresponding object\property I should check in the Delphi Bitmap Style Designer for :

  • THtmlhintform background
  • TAdvSpinEdit buttons color in disabled mode
  • TAdvSpinEdit background color in disabled mode

So that I will be able to check if the unexpected colors come from my style.

Best regards,

Nicolas

I did not manage to find the link between the enum values (thHintBalloon, tgCellNormal, ...) used in components paint functions to get the colors, and the objects\properties listed in the Bitmap style Designer

Regarding the HtmlHint, I may have found a mistake in the procedure THTMLHintWindow.Paint; (version 10.5.4).

The background color is get like this (l369):

// Background
lDetails := StyleServices.GetElementDetails(thHintBalloon);
if StyleServices.GetElementColor(lDetails, ecBorderColor, clr) and (clr <> clNone) then
...

So the border color from Hint element is used as background color while it should use the fill color.
If I replace ecBorderColor by ecFillColor, then my VCL style is respected.

You're correct about this.
We have adapted this accordingly and the next release will have this improvement.

Regarding the TAdvSpinEdit, have a look to the attached demo that use the Delphi "Light" Vcl style.
All the advSpinEdit components in the demo have the same defintion, only the enabled property should change.

Here is what I saw:
1- It seems that sometimes in the designer, if I set the enabled to false, the DisabledColor is assigned to the color property and thus the initial color property is lost.
2- The first TadvSpinedit (with label="Enabled") has the right style but there are some refresh issue when button take/lost the focus.
3- The others TadvSpinEdit do not have the right style. The button background are grey. One has the refresh issue on focus but the others not.
4- In my real application, the behaviour is slightly different. Disabled TAdvSpinEdits have grey background (instead of white). When enabled, it remains grey but then on button focus, the button becomes white.

Are there some refresh issues and some conflicts between the VCL style and the component properties ? StyleDemo.zip (105.8 KB)

1: could not be reproduced
2: fixed
3: looks related to 1, when Color is set correct, the button background is correct

Regarding 1, a copy is needed to reproduced.
Steps, in designer:

  • Add a TAdvSpinEdit on the form
  • Set enabled to false
  • Copy/Past the TAdvSpinEdit to create a second one
    -> The pasted component is created with Color = DisabledColor

Regarding 3, here it is at runtime, with VCL style. So whatever the color property, it is the style color that should be used. Am I Wrong?

We understood it now and applied a fix.

StyleDemo2.zip (104.8 KB)
I comeback to you regarding point 3 which can be reproduced in the last version.
Please find attached new demo sources.
In the main form, you will find 4 identical TAdvSpinEdit components. Only the enable property change. You can edit the enable property at runtime with chekboxes. The application use the "light" vcl style.

The four TAdvSpinEdit have four different behaviours:
1- AdvSpinEdit is disabled in the designer. During runtime time, you can enable/disable, buttons always remain grey.
2- AdvSpinEdit is enabled in the designer. During runtime time, you can enable/disable, buttons always respect the style.
3- AdvSpinEdit is enabled in the designer but disabled in form create. During runtime, you can enable/disable, buttons remain grey. Then enable AdvSpinEdit and move the cursor on buttons to highlight them. They get the right style. Then you can enable/disable, buttons now always respect the style.
4- AdvSpinEdit is enabled in the designer but disabled in form create. Here when clicking on checkbox, component is hidden then enabled/disabled then shown again. During runtime time, when the component is disabled buttons are grey, and when the component are enabled buttons have the right style.

In our main application we have this kind of issue. Disabled TAdvSpinEdit have grey buttons. After enabling and highlighting, somtimes they get the right style, sometimes not. After disabling, sometimes they revert to grey sometimes not. It depends on the component according to the way to update the visibility and the availability. Unfortunately, the grey buttons make our user interface not very nice.

We could see this phenomenon and applied a fix.

Is the next release already planned ?

Earliest Apr 29 and if we do not get this target, it will be May 5