FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Pintar StringGrid
Hola con respecto al tema se que se cuenta con demasiada infomacion y temas, una de las diferencias o por lo cual abro otro tema es la siguiente
es en C++, a los demas les funciona y a mi no. lo que quiero es pintar un renglon si y otro no (azul,blanco,azul,blanco,.......) Tengo el siguiente codigo en el evento SGVentasDrawCell() Código:
if (ARow!=0) { if (ARow%2==0 ){ SGVentas->Canvas->Brush->Color = clBlue; SGVentas->Canvas->Rectangle(Rect); SGVentas->Canvas->Font->Style << fsBold; SGVentas->Canvas->Font->Color = clWhite; } } no se si el color de Brush se ponga por encima del renglon o si el texto simplemente no tiene color. Por que en el renglon que se pinta Azul no se ve el texto (al entrar para editar si se encuentra). Alguien que me pueda orientar
__________________
El Software es como el Sexo, si es de gratis es Mejor |
#2
|
||||
|
||||
Hola.
Probá de este modo: Código:
void __fastcall TForm1::gridDrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { TStringGrid *StrGrd = dynamic_cast<TStringGrid*>(Sender); if (ARow != 0 && ARow%2 != 0 ){ StrGrd->Canvas->Brush->Color = clBlue; StrGrd->Canvas->Rectangle(Rect); StrGrd->Canvas->Font->Style << fsBold; StrGrd->Canvas->Font->Color = clWhite; DrawText(StrGrd->Canvas->Handle, StrGrd->Cells[ACol][ARow].c_str(), StrGrd->Cells[ACol][ARow].Length(), &Rect, DT_SINGLELINE | DT_VCENTER); } }
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
||||
|
||||
Exacto, la razón es que pintas un rectángulo sólido con lo que tienes que pintar también el texto.
La única pega que se puede poner al buen ejemplo de ecfisa es que el texto se pintarán las líneas desaclopadas. Quizás desplazando un poco a la derecha y abajo el texto... Código:
TStringGrid *StrGrd = dynamic_cast<TStringGrid*>(Sender); if (ARow!=0) { if (ARow%2==0 ){ StrGrd->Canvas->Brush->Color = clBlue; StrGrd->Canvas->Rectangle(Rect); StrGrd->Canvas->Font->Style << fsBold; StrGrd->Canvas->Font->Color = clWhite; InflateRect(&Rect, -2, -2); DrawText(StrGrd->Canvas->Handle, StrGrd->Cells[ACol][ARow].c_str(), StrGrd->Cells[ACol][ARow].Length(), &Rect, 0); } } |
#4
|
||||
|
||||
Gracias
Gracias por su apoyo, el código era algo similar solo una modificacion ya que utilizo c++ 2010 y han de saber es mas caprichoso.
Utilize el codigo que puso escafandra ya que como menciono el codigo de ecfisa movia un poco el texto a la izquierda. Modificacion: Código:
DrawText(StrGrd->Canvas->Handle, StrGrd->Cells[ACol][ARow].c_str(), StrGrd->Cells[ACol][ARow].Length(), &Rect, 0); Código:
DrawTextW(StrGrd->Canvas->Handle, StrGrd->Cells[ACol][ARow].c_str(), StrGrd->Cells[ACol][ARow].Length(), &Rect, 0); y que es &Rect Otra cosa no se si an notado que los colores de builder son demasiado llamativos como puedo utilizar otros aparte de la funcion RGB() ya que esta me manda Warning Gracias de antemano y por su apoyo
__________________
El Software es como el Sexo, si es de gratis es Mejor |
#5
|
||||
|
||||
Hola.
InflateRect incrementa/decrementa el ancho y/o largo de un rectángulo: InflateRect Function Para definir colores personalizados desde el Object Inspector, doble click sobre la propiedad color y click sobre el botón "Definir colores personalizados". Desde código en forma directa: Código:
void __fastcall TForm1::Button1Click(TObject *Sender) { Edit1->Color = 0x007C88ED; }
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 07-05-2011 a las 05:12:07. |
#6
|
||||
|
||||
Gracias nunca se me había ocurrido dar doble click.
aunque una diferencia en el modo de asignación el color sale con el sig. formato desde la propiedad color $007C88ED ay que cambiar el signo de $ y poner 0x007C88ED esto por si a alguien le interesa
__________________
El Software es como el Sexo, si es de gratis es Mejor Última edición por aams01 fecha: 07-05-2011 a las 06:33:23. Razón: sugerencia de codigo |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
stringgrid en celda de otro stringgrid?? | noodle_ | OOP | 3 | 17-06-2008 13:36:01 |
Pintar en Timage | fasthorse | Gráficos | 1 | 15-05-2008 14:32:14 |
Pintar celdas StringGrid | cacu | OOP | 4 | 24-10-2007 17:22:21 |
Pintar celda de un StringGrid | huevozen | C++ Builder | 1 | 31-08-2006 17:00:19 |
pintar una celda... | eli.vidal | Impresión | 1 | 14-11-2005 16:31:27 |
|