Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

StringGrid - Propiedades de columna

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: StringGrid - Propiedades de columna Responder citando

Hola amigos:

Necesito saber como puedo cambiarle las propiedades a una columna en un StringGrid, de forma que pueda tener distintos tamaños de texto, color, etc.

Muchas gracias.
_________________
La pintura es la expresión de la mente.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Hola, lo primero que has de decirle que no se dibuje él solito (propiedad DefaultDrawing del StringGrid a false en tiempo de diseño o ejecución, como te interese). Luego manejas el "pintado" de las celdas (del StringGrid entero, por tanto) con el evento OnDrawCell. Allí tendrás que indicarle que si la columna es la que tú quieres cambiar de color (...) entonces tenga ciertas propiedades.
Código:
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
      int ARow, TRect &Rect, TGridDrawState State)
{
  if (ACol == 2)
    {
    StringGrid1->Canvas->Brush->Color = clRed;
    ....
    }
  if (ACol == 1 && ARow < 2)
    {
    StringGrid1->Canvas->Brush->Color = clBlue;
    ....
    }
}

En https://cppbuilder.es/viewtopic.php?t=3661&highlight=stringgrid tienes una primera ayuda.

Creo recordar que en el BCB5 venía un buen ejemplo del evento OnDrawCell de TCustomStringGrid, pero aquí sólo tengo el BCB6 y el enlace a ese ejemplo está corrupto, osea que no puedo copiarlo aquí (búscalo).

Suerte.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Ya he encontrado la ayuda de BCB6:
Cita:
The following code uses the bitmaps in an image list component to draw the contents of each cell in a draw grid. It draws a focus rectangle around the cell that has focus.

void __fastcall TForm1::DrawGrid1DrawCell(TObject *Sender, long Col, long Row, TRect &Rect, TGridDrawState State)

{
long index = Row * DrawGrid1->ColCount + Col;
DrawGrid1->Canvas->Brush->Color = clBackground;
DrawGrid1->Canvas->FillRect(Rect);
ImageList1->Draw(DrawGrid1->Canvas,Rect.Left,Rect.Top,index);
if (State.Contains(gdFocused))
DrawGrid1->Canvas->DrawFocusRect(Rect);
}


Suerte.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Cuando me refiero al color, me refiero al del texto.
Lo que necesito es cambiar las propiedades del texto de una columna.

Un saludo y gracias
_________________
La pintura es la expresión de la mente.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Si no recuerdo mal, la fuente en un TCanvas se controla con la propiedad Pen (bolígrafo):
Código:
 DrawGrid1->Canvas->Pen->Color = clRed;

Suerte.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

¿Y el tamaño y la fuente?
_________________
La pintura es la expresión de la mente.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Ahora he probado el código y resulta que lo recordaba mal. La fuente del DrawGrid se controla con su propiedad Font:
Código:
DrawGrid1->Font->Color = clRed;
DrawGrid1->Font->Size = 15;
DrawGrid1->Font->Name = "Courier";
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Eso si lo se, lo que no se es como cambiarle el tamaño de la fuente a una sola columna, así como las propiedades asociadas a la fuente.
Volver arriba
Mensaje    Asunto: Responder citando

Como te dije has de manejar tú mismo el pintado de celdas.

Mira este ejemplo: https://cppbuilder.es/viewtopic.php?t=3738&highlight=degradado
y este otro: http://bcbjournal.com/articles/vol4/0010/More_string_grids.htm

Suerte.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.