Mira ya decubri el error de porque pasaba eso, el problema es que yo pintaba los DDGrids en el evento DBGrid1DrawColumnCell y le quite y ahora funciona muy bien, el problema es que ahora tengo mis DBGrids Standard como vienen, la idea era "Pintar la fila seleccionada del DBGrid", ahi estaba el problema.
Código Delphi
[-]
procedure TForm_BeEMPPRJ.DBGrid_MTRPRTDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
DBGrid_MTRPRT.Canvas.Font.Style := [];
DBGrid_MTRPRT.Canvas.Font.Color := clWindowText;
if (DBGrid_MTRPRT.DataSource.DataSet.RecNo = MTRPRT_RecNo) then
DbGrid_MTRPRT.Canvas.Brush.Color := $00EFD3C6
else
DbGrid_MTRPRT.Canvas.Brush.Color := clWindow;
if (gdSelected in State) and
(DBGrid_MTRPRT.Focused) then
begin
DBGrid_MTRPRT.Canvas.Font.Color := clWindow;
DbGrid_MTRPRT.Canvas.Brush.Color := clHighlight;
end;
DBGrid_MTRPRT.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
La variable "MTRMRD_RecNo" la actualizaba en el evento Dataset "DataChage" y el DBGrid lo refrescaba en el Evento AfterScroll, quite los eventos "DrawColumnCell" y ahora si funciona claro quite todos los eventos de pintado de grilla.
Como Podria pintar un DBGrid pero solo la Fila seleccionada, he visto ejemplos aca pero no funcionan alguna idea.
Gracias