![]() |
Pintar una fila entera de un DBGrid y determinar columnas
Hola. Explico mejor el asunto y problema que tengo:
Uso Delphi 7 y tengo un DBgrid al que, seleccionando una fila, se pinta la fila entera. Esto lo hago con DBGrid1 > Options > dgRowSelect > true El problema que ocurre es que si pincho en la celda 3, detecta que he pulsado la celda 0, al estar toda la fila seleccionada no diferencia entre columnas :confused::confused: Es decir, este código no se ejecuta:
Hay alguna manera de solucionar esto? Gracias |
Hola cslbcn, lo que se me ocurre es que pintes tu la fila, sin el RowSelect (ponerlo a False), para ello podrías desprotejer primero el DBGrid, de esta forma:
En tu evento OnColumnCell haces lo siguiente:
Pruebalo, puede que tengas que hacer algunos controles mas. Saluditos |
Gracias por responder.
El compilador dice que no reconoce CellRect ni Row aRect := TDBGrid(Sender).CellRect(DataCol+1,TDBGrid(Sender).Row); |
Cita:
Tal vez deberías utilizar alguno de los que te devuelven X e Y y a partir de ahí (coordenadas) detectar la columna en la que se ha pulsado. |
Cita:
Sino, por lo menos has un Cast a TStringGrid:
Saluditos |
No funciona bien del todo. Cuando se seleccionan filas de abajo hacia arriba los datos se suben, además que el color azul de la selección se mantiene en cada fila que pincho.
tengo este código hecho... por si sirve de algo
|
Cita:
La solucion? Trabaje sobre el dataset por medio del datasourse. Saludos. |
| La franja horaria es GMT +2. Ahora son las 19:00:46. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi