Ich habe jetzt TCsCustomPanel von den anderen Komponenten getrennt und in eine eigene
Unit verfrachtet (siehe Anhang).
Hat jemand eine Idee wieso der Fehler auftritt?
K.a. obs daran liegt, aber im Paint setzt Du (bei FEnableHoverColor=True) dein Color auf FHoverOverColor. Was macht denn der Setter von TPanel.Color.... nicht das der Paint aufruft und damit alles durcheinander kommt. Großartig aufregend ist das TPanel.Paint ja nicht (Fill) sodaß Du das vielleicht noch selbst hinkriegen könntest, ohne Color zu setzen...
Der Setter von Color macht folgendes:
Delphi-Quellcode:
procedure TControl.SetColor(Value: TColor);
begin
if FColor <> Value then
begin
FColor := Value;
FParentColor := False;
if (csDesigning in ComponentState) and not (csReading in ComponentState) and (Self is TWinControl) then
TWinControl(Self).ParentBackground := False;
Perform(CM_COLORCHANGED, 0, 0);
end;
end;
Den Hintergrund selbst zeichnen löst leider nicht das Problem mit der ComboBox.
Alle anderen Controls werden übrigens korrekt gezeichnet.