Un lugar de encuentro para los programadores de habla hispana

Un lugar de encuentro para los programadores de habla hispana

Buscar

Entrar

Puedes acceder utilizando tu cuenta de usuario del foro.

Si no dispone de cuenta, puede crear una accediendo al formulario de registro del foro.



Cambiar el color de las filas en un StringGrid Imprimir
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&iacute;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&aacute;ngulo de dibujo
                         (DT_NOCLIP or              // Sin recortar: va m&aacute;s r&aacute;pido
                          DT_NOPREFIX or            // No valorar el car&aacute;cter "&amp;"
                          DT_SINGLELINE or          // Una l&iacute;nea
                          DT_LEFT or                // Alineada a la izquierda
                          DT_VCENTER));             // Centrada verticalmente
      end;
    end;
end;
 
 
Comentarios (0)
Para escribir un comentario debes estar registrado