Ver Mensaje Individual
  #1  
Antiguo 08-04-2010
vichovi vichovi is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva (España)
Posts: 59
Reputación: 22
vichovi Va por buen camino
Post Indicador de posicion TCustomDBGrid

Hola a tod@s,
Tengo un control derivado de TCustomDBGrid en Delphi que estoy migrando a Lazarus. Ya esta prácticamente migrado solo me falta el tema del indicador de posición el cual no logro hacer funcionar, porque o se pinta el indicador por defecto o aparecen todos los registros con el indicador.
El código que utilizo es:
Código:
procedure TviDBGrid.DrawCell(aCol, aRow: Integer; aRect: TRect;
  aState: TGridDrawState);
begin
  inherited DrawCell(aCol, aRow, aRect, aState);

  //Verifico que el DataSet este listo
  if not Listo then
  begin
    exit;
  end;

  //Verifico que el componente este cargado
  if csLoading in ComponentState then
  begin
    exit;
  end;

  //Compruebo que sea la fila y columna a pintar
  if (aCol=0) and (ARow=DataSource.DataSet.RecNo) and (dgIndicator in Options) then
  begin
    Canvas.Brush.Color:=FixedColor;
    inherited Canvas.FillRect(aRect);
    inherited Canvas.Draw(ARect.Left+(ARect.Right-ARect.Left-FSelRow.Width) div 2,
      ARect.Top+(ARect.Bottom-ARect.Top-FSelRow.Height) div 2,FSelRow); //FSelRow es el Bitmap a dibujar
  end;
end;
Lo suyo para esto, tras analizar el fuente del TCustomDBGrid, seria sobreescribir el método DrawFixedText pero no me deja hacerlo :?:

Espero sus comentario.
Un saludo y gracias de antemano.
__________________
Vivir a la deriva,
sentir,
que no se que hago aki...

(Extremo)
Responder Con Cita