anchor.diff:      FDBGrid : TDBGrid;
       FSortManager : ISortableDatasetManager;
       FGridIcons: TmGridIconsDataModule;
  +    FHeaderPopupMenu : TPopupMenu;
  +    FCurrentGridCol : longint;
  +    FGridPopupMenu : TPopupMenu;
  +    // original events
  +    FOriginalOnTitleClick : TDBGridClickEvent;
  +    FOriginalOnMouseDown : TMouseEvent;
       procedure OnTitleClick (Column: TColumn);
  +    procedure OnMouseDown (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  +    procedure BuildHeaderPopupMenu;
     public
  -    constructor Create;
  +    constructor Create(aGrid : TDBGrid);
       destructor Destroy; override;
       function EditSettings : boolean;
       procedure LoadSettings (aStream : TStream);
       procedure SaveSettings (aStream : TStream);
       procedure EnableSort (aSortManager : ISortableDatasetManager);
  -
  -    property Grid : TDBGrid read FDBGrid write FDBGrid;
  +    procedure EnableHeaderPopupMenu (aGridPopupMenu : TPopupMenu);
  +
  +    property Grid : TDBGrid read FDBGrid;
     end;
   
   implementation
  
positive.code:   begin
      FGridIcons:= TmGridIconsDataModule.Create(FDBGrid);
      FDBGrid.TitleImageList := FGridIcons.GridImageList;
      FDBGrid.OnTitleClick:= Self.OnTitleClick;
      FSortManager:= aSortManager;
    end;
  end;
  
  end.
  
negative.code: 
  uses
    Classes,
    DBGrids, Controls, Menus,
    mGridColumnSettings, mXML, mGridSettingsForm, mSortConditions, mGridIcons,
    mDatasetInterfaces;
  
  