|
Ideas -
Delphi
|
Utiliza un código similar al siguiente en el evento OnDrawCell:
procedure TLo_Que_Sea.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
S: String;
begin
if ((0 < ARow) and (0 < ACol)) then
begin
// Esto dibuja una de cada 3 líneas en color...
if (0 = (ARow mod 3)) then
StringGrid1.Canvas.Brush.Color := clRed // ... rojo...
else
StringGrid1.Canvas.Brush.Color := clTeal; // ... el resto en verde
// Dibujar el fondo
StringGrid1.Canvas.FillRect(Rect);
// Obtener el texto de la celda
S := StringGrid1.Cells[ACol, ARow];
// Si no es una cadena en blanco...
if ('' <> S) then
begin
// Dejar un par de pixeles a la izquierda para el texto
Rect.Left := Rect.Left + 2;
// ... dibujar
Windows.DrawText(StringGrid1.Canvas.Handle, // "Device context"
PChar(S), // Cadena a pintar
Length(S), // Longitud de la cadena
Rect, // Rectángulo de dibujo
(DT_NOCLIP or // Sin recortar: va más rápido
DT_NOPREFIX or // No valorar el carácter "&"
DT_SINGLELINE or // Una línea
DT_LEFT or // Alineada a la izquierda
DT_VCENTER)); // Centrada verticalmente
end;
end;
end;
|