I have spent several hours struggling with a TAdvSpinEdit control color and have come up with the following understanding.
When you want to set TAdvSpinEdit Color, the (private) FNormalColor field is only reset if the control is enabled: See this from the AdvSpin unit (v2.0.2.6).
procedure TAdvSpinEdit.SetColorEx(const Value: TColor);
begin
inherited Color := Value;
if Enabled then
FNormalColor := Value;
end;
This is different behaviour to TAdvEdit.DisabledColor, which doesn't check "Enabled". See this from the AdvEdit unit (v4.0.6.2)
procedure TCustomAdvEdit.SetColorEx(const Value: TColor);
begin
inherited Color := Value;
FNormalColor := Value;
end;
So, to properly change the Spin Edit Color property in code (including the Normal Color) you have to either temporarily force the Spin Edit to Enabled or to call TSpinEdit.Init, neither of which is particularly intuitive. A better option may be to make NormalColor a user accessible property - or to not check Enabled at all (which I personally don't think is necessary). It would also be nice if all the components worked in the same way.