![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
No me Funciona
Gracias por su respuesta, pero no me funcionó, trato de poner
(Column.Index = 4) a (Column.Index = 3) para que me coloree la Columna #3 pero en vez de colorearme se mueve la Celda, si no hago esta misma asignación me colorea la columna #4 en vez de la #3 y si me colorea la #4 al abrir un nuevo registro se quita el Color, en fin es un desastre. Que tenga buen día. |
|
#2
|
||||
|
||||
|
Si quieres que el pintado afecte sólo a las filas que satisfagan una condición entonces esta condición debe de alguna manera depender de la fila. En tu código PVentaCheck o es falso o es verdadero para todas las filas así que, o se pintan todas las celdas de la columna o no se pinta ninguna.
// Saludos |
|
#3
|
|||
|
|||
|
COlorear DBGridColumn
Prueba lo siguiente
if DataCol = 0 then //Index de la columna que quieres colorear begin DBGrid1.Canvas.Brush.Color := clBlue; //Color de fondo FillRect(DBGrid1.Canvas.Handle, Rect, DBGrid1.Canvas.Brush.Handle); DBGrid1.Canvas.Font.Color := clRed; //Color de fuente DBGrid1.Canvas.TextOut(Rect.left + 2, Rect.top + 2, Column.Field.AsString); end; |
|
#4
|
||||
|
||||
Cambie el Estado de la Celda y el número de Columna que quiero que me cambie de Color, Agregue el Código que me proporciono MFCORRAL para pintar la Celda Si me funciona Corrrectamente pero si abro un Nuevo registro me la DESPINTA y vuelve a su estado normal, es lo que quiero evitar que haga eso, quiero que quede el Color que le pongo al cumplirse la condición, siendo que la condicion la hago en el evento OnColExit de la Columna #3. |
|
#5
|
||||
|
||||
|
Cita:
No puedes establecer la condición en un momento dado, tienes que establecerla en cualquier momento. Las celdas en un grid no se pintan porque en algún momento les digamos "píntense de rojo", debemos decírselos en todo momento. Dicho de otra forma, el pintado de las celdas de un grid funciona como sigue: Cuando el grid debe ser repintado, sea porque la ventana se descubre, se mueve alguna columna, se hace un deslazamiento, cambian de posición las filas, etc., etc., etc., la VCL genera el el evento OnDrawColumnCell. Tú no tienes manera de saber en qué momento vas a recibir este evento. Por ello el código en tu evento debe estar preparado para cualquier situación. Si tú estableces una condición en el evento OnColExit, quizá se pinte como deseas durante un momento, es decir, mientras el grid no se repinte por alguna otra acción (como abrir un nuevo registro). En el próximo repintado, tu evento debes estar listo para dibujar la celda correcta. En todas las versiones que has puesto, no hay ninguna condición que sea específica de la celda que quieres, si acaso hay de la columna, pero no de la fila. En fin, lo que yo veo es que hay un error de concepción en lo que piensas que hace el evento OnDrawColumnCell y te recomiendo que revises desde el punto de vista que te doy. // Saludos |
|
#6
|
||||
|
||||
|
Si Entiendo
Si Entiendo lo que me dijo en su primer comentario, pero sinceramente no sabìa que tambien se le tiene que decir al grid en que Registro se debe de pintar, pero bueno, yo reconozco que usted esta en lo Correcto, mi unica finalidad es de Pintar SOLO una Celda de un Registro que cumpla una condicón, no quiero que me pinte Toda la Fila y toda la columna de una Celda, como ya se dio cuenta es la primera vez que intento hacer esto, solamente ocupo saber si no se puede hacer lo que menciono.
Espero me haya explicado. Saludos. |
|
#7
|
||||
|
||||
|
Cita:
Por dar un ejemplo, suponte que tienes en la columna 3 un dato numérico y deseas pintar de rojo aquellas celdas de dicha columna cuyos valores sean negativos. La condición será del estilo:
En este caso la condición no sólo incluye el número de columna sino además una condición que depende de la fila (esto es, del valor en particular que tenga el campo de esa columna para una fila o filas en específico). // Saludos |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|