ecSyntmemo

after
  TDragMarginEvent = procedure(Sender: TObject; Margin: TecTextMargin; var Pos: integer) of object;
add  
  TGetGutterBandColor = procedure(Sender: TObject; NBand: Integer; NLine: Integer; var NColor: TColor) of object;
  
after
    FOnGutterClick: TGutterClickEvent;
add    
    FOnGetGutterBandColor: TGetGutterBandColor; //AT
   
after
    property OnGutterClick: TGutterClickEvent read FOnGutterClick write FOnGutterClick;
add    
    property OnGetGutterBandColor: TGetGutterBandColor read FOnGetGutterBandColor write FOnGetGutterBandColor; //AT

procedure TCustomSyntaxMemo.FillGutterBackground
add var
    NColor: TColor;
after
     if Gutter.Bands[i].Color <> clNone then  Canvas.Brush.Color := Gutter.Bands[i].Color
                                        else  Canvas.Brush.Color := FGutter.Color;
add                                        
     if Assigned(FOnGetGutterBandColor) then
     begin
       NColor := Canvas.Brush.Color;
       FOnGetGutterBandColor(Self, i, Line, NColor);
       if NColor <> clNone then
         Canvas.Brush.Color := NColor;
     end;                                     
