Delphi - color en ciertas columnas

 
Vista:

color en ciertas columnas

Publicado por Roberto Ortiz (5 intervenciones) el 04/07/2000 00:00:00
como le puedo poner color a solo algunas columnas de un objeto TStringGrid

gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:color en ciertas columnas

Publicado por Luxus (3 intervenciones) el 13/07/2000 00:00:00
Es un poco dificil, debes crear una nueva claseo que sea heredada de el TStringGrid
o del TCustomGrid, asi:

MyClase = Class( TStringGrid )

Protected
procedure DrawCell(ACol, ARow: Longint; ARect: TRect;
AState: TGridDrawState); override;

...
...

End;

Dentro de la cual debes sobre cargar la función que dibuja las celdas, esta se llama DrawCell

Puedes crearle una propiedad o metodo que te indique cual columna quieres cambiarle el color
y utilizarlas para redibujar la celda... algo como:

procedure MyClass.DrawCell(ACol, ARow: Longint; ARect: TRect;
AState: TGridDrawState); override;
Begin
if ( ARow = MYROW ) Then
Begin
Canvas.Brush.Color := clGray // El color de la columna
Canvas.Brush.Style := bsSolid;
Canvas.FillRect( ARect);
End;
End;

Canvas, tiene toda una serie de funciones para dibujar sobre regiones del objeto

Al crear una nueva clase se pierden algunas de las propiedades de la clase padre
asi que hay que reescribirlos..

Practica con las nuevas clases y con canvas y podras hacer lo que quieras.

Nota: Mira el ejemplo del calendario en Source/Samples en el directorio de delphi


Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar