SoloCodigo
Programación General => C/C++ => C++ Builder => Mensaje iniciado por: jojobax_ en Martes 8 de Abril de 2008, 18:43
-
Hola amigos, he aqui mis dudas:
1- Se puede colorear una fila de un stringgrid dependiendo del dato que contenga. Ejemplo: si en la tabla guardo datos de celulares, que los coloree con distintos colores (elegidos x mi) por marcas.
2- Se puede poner una imagen de fondo a un stringgrid? si es asi, los colores me taparán la imagen que tenia de fondo, o se puede poner un color de celda "transparente"?
3- Como puedo centrar el texto en una celda sin tener que ponerle espacios al comienzo de la palabra?
4- La mas importante: como puedo hacer para exportar los datos de mi tabla a excel o a word como para poder imprimirlos???????
He buscado las soluciones a mis problemas pero solamente encontre codigos para delphi (no tengo ni idea de este lenguaje)
Por favor ayudenme con esto. Millones de gracias anticipadas......... :D
-
Si ecnontrasre ayuda en Delphi stas encaminado! Fijate que las funciones de los objetos de Delphi x lo general son las mismas que las de los objetos de Borland C++!!!
X lo que podrias llegar a usar el código que encontraste si lo transformas correctamente!
Lástima no poder ayudarte mas pero no tenog tiempo para andar provando esas cosas y ultimamente ya pelié mucho con el stringgrid como para ponerme a peliar de nuevo...
La parte estética me la tuve que perder en el... jajjajaja
Exitos y si encontras las soluciones a tus items postealias de lleno!!!
Exitos!
-
Bueno, encontre una solucion para poder pintar las celdas y para poder cambiarles el color de letra, pongo el codigo original (que creo saque de esta pagina), no el que modifique para mi caso en especial, porque quedo muy especifico para mi programa.
Espero que a alguien le sirva, por favor sigan contestando!
Gracias
_____________________________________________________________
Va en el evento OnDrawCell del stringgrid
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
TStringGrid* Grilla = static_cast<TStringGrid*>(Sender);
TCanvas *canvas = dynamic_cast<TStringGrid*>(Sender)->Canvas;
TRect r(Rect);
canvas->Font=Grilla->Font;
// Pintamos el fondo de la celda 1,1 de rojo
if((ACol == 1) && (ARow == 1))
{
canvas->Brush->Color = clRed;
}
// Pintamos el elemento de la celda 1,2 de azul
if((ACol == 1) && (ARow == 2))
{
canvas->Font->Color = clBlue;
}
canvas->FillRect®;
DrawText(canvas->Handle, StringGrid1->Cells[ARow][ACol].c_str(), StringGrid1->Cells[ARow][ACol].Length(), &r,DT_LEFT);
}
Repito, el codigo no es mio