Hola:
Creo que deberías redefinir el método
DrawColumnCell que es dynamic (virtual), y no
DefaultDrawColumnCell, este método es estático y parece estar pensado para llamarlo desde nuestro código si queremos conseguir el funcionamiento por defecto y así evitarnos trabajo extra.
En realidad, a partir de Delphi 4.0, están obsoletos los métodos
DrawDataCell y DefaultDrawDataCell, y se deben emplear
DrawColumnCell y DefaultDrawColumnCell (cambia lo de Data por Column), pero ten en cuenta lo que te he dicho anteriormente, el método
DefaultDrawColumnCell no se debe sobreescribir (en tu caso lo que has hecho ha sido definir uno nuevo con el mismo nombre, no te habrá dejado ponerle
override porque es estático). El método que interesa es DrawColumnCell.
La cosa quedaría así:
Código:
type
TDBGridPlus = class(TDBGrid)
protected
procedure DrawColumnCell (const Rect: TRect; DataCol: Integer;
Column: TColumn; State: TGridDrawState); override;
public
// el procedure MiDefaultDrawColumnCell ahora sobra
end;
...
procedure TDBGridPlus.DrawColumnCell(const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
// aquí pones el código que antes se hacía en MiDefaultDrawColumnCell
// y te evitas ese método, puesto que reciben los mismos parámetros
inherited DrawColumnCell;
end;
Como muy bien te explicó Marto, dependiendo de lo quieras lograr, colocarás antes o después la llamada a
inherited DrawColumnCell;