| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
LIGERO Cmdr


Registrado: 13 May 2004Mensajes: 134Ubicación: Granada
|
Publicado: Vie 22 Oct, 2004 5:34 pm Asunto: StringGrid - Propiedades de columna |
|
|
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 |
|
 |
Enrique Master


Registrado: 13 Ago 2002Mensajes: 261Ubicación: La Vila Joiosa (Alacant)
|
Publicado: Vie 22 Oct, 2004 9:51 pm Asunto: |
|
|
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 |
|
 |
Enrique Master


Registrado: 13 Ago 2002Mensajes: 261Ubicación: La Vila Joiosa (Alacant)
|
Publicado: Vie 22 Oct, 2004 9:53 pm Asunto: |
|
|
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 |
|
 |
LIGERO Cmdr


Registrado: 13 May 2004Mensajes: 134Ubicación: Granada
|
Publicado: Lun 25 Oct, 2004 8:12 am Asunto: |
|
|
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 |
|
 |
Enrique Master


Registrado: 13 Ago 2002Mensajes: 261Ubicación: La Vila Joiosa (Alacant)
|
Publicado: Lun 25 Oct, 2004 10:20 am Asunto: |
|
|
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 |
|
 |
LIGERO Cmdr


Registrado: 13 May 2004Mensajes: 134Ubicación: Granada
|
Publicado: Lun 25 Oct, 2004 11:13 am Asunto: |
|
|
¿Y el tamaño y la fuente? _________________ La pintura es la expresión de la mente. |
|
| Volver arriba |
|
 |
Enrique Master


Registrado: 13 Ago 2002Mensajes: 261Ubicación: La Vila Joiosa (Alacant)
|
Publicado: Lun 25 Oct, 2004 11:30 am Asunto: |
|
|
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 |
|
 |
Invitado
|
Publicado: Lun 25 Oct, 2004 12:08 pm Asunto: |
|
|
| 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 |
|
 |
Enrique Master


Registrado: 13 Ago 2002Mensajes: 261Ubicación: La Vila Joiosa (Alacant)
|
|
| Volver arriba |
|
 |
|