diff --git a/components/exctrls/source/excombo.pas b/components/exctrls/source/excombo.pas index 5971c7b88..a3c1db6f7 100644 --- a/components/exctrls/source/excombo.pas +++ b/components/exctrls/source/excombo.pas @@ -55,6 +55,7 @@ type procedure SetOffsets; procedure SetShowColSeparators(aValue: Boolean); protected + procedure CreateHandle; override; procedure DoAutoAdjustLayout(const AMode: TLayoutAdjustmentPolicy; const AXProportion, AYProportion: Double); override; class function GetControlClassDefaultSize: TSize; override; @@ -178,6 +179,12 @@ begin Result := FColumnMargin <> Scale96ToFont(DEFAULT_COLUMN_MARGIN); end; +procedure TColumnComboBoxEx.CreateHandle; +begin + inherited; + SetOffsets; +end; + procedure TColumnComboBoxEx.DoAutoAdjustLayout( const AMode: TLayoutAdjustmentPolicy; const AXProportion, AYProportion: Double ); @@ -212,14 +219,19 @@ begin FParser.Delimiter := FDelimiter; FParser.DelimitedText := txt; - if (odSelected in State) then + if not(odBackgroundPainted in State) then + Canvas.FillRect(ARect); + +{ if (odSelected in State) then Canvas.Brush.Color := clHighlight else if (Canvas.Brush.Color <> Color) then Canvas.Brush.Color := Color; - Canvas.FillRect(ARect); + Canvas.FillRect(ARect);} y := ARect.Top + (ARect.Height - FTextHeight) shr 1; + Canvas.Brush.Style := bsClear; // transparent text background + if Assigned(FOffsets) then begin for i := 0 to FParser.Count-1 do @@ -375,6 +387,7 @@ var begin if not Assigned(Parent) or (Items.Count = 0) then Exit; + FColumnCount := GetColumnCount; SetLength({%H-}widths, FColumnCount);