| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Marky Master

Registrado: 28 Dic 2002Mensajes: 251Ubicación: Las Rozas - Madrid (España)
|
Publicado: Lun 05 Ene, 2004 9:33 am Asunto: TDBGrid, multiselect y OnDrawColumnCell |
|
|
En un TDBGrid he puesto un determinado código en el evento OnDrawColumnCell para que las filas pares de un TDBGrid salgan de un color y las impares de otro. Además he tenido que tener en cuenta el estado del TDBGrid para poder dibujar en azul la fila seleccionada. El problema está en que a pesar de tener ajustadas a true las propiedades Multiselect y RowSelect del TDBGrid únicamente me aparece en azul la última fila que he elegido, cuando lo que en realidad quiero es que me vaya poniendo en azul todas las filas que vaya marcando. ¿Alguien sabe como puedo capturar esto en el OnDrawColumnCell? He probado con SelectedRows pero no he conseguido nada.
Muchas gracias y un saludo. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 05 Ene, 2004 6:03 pm Asunto: |
|
|
Puedes usar la propiedad "..SelectedRows->CurrentRowSelected" del TDBGrid. Por ejemplo, suponiendo que usas Paradox, ponemos lo siguiente en el evento OnDrawColumnCell:
if (!DBGrid1->SelectedRows->CurrentRowSelected)
{
DBGrid1->Canvas->Brush->Color =
(DBGrid1->DataSource->DataSet->RecNo & 1) ? clWhite : clAqua;
}
DBGrid1->DefaultDrawColumnCell(Rect, DataCol, Column, State);
En caso de usar otro motor de base de datos que no actualice la propiedad "RecNo", puedes usar el código que hay al final del siguiente mensaje modificando solo esa línea:
https://cppbuilder.es/viewtopic.php?t=4298 |
|
| Volver arriba |
|
 |
Marky Master

Registrado: 28 Dic 2002Mensajes: 251Ubicación: Las Rozas - Madrid (España)
|
Publicado: Lun 05 Ene, 2004 6:31 pm Asunto: |
|
|
Muchísimas gracias _Leo! Funciona genial. No se me había ocurrido usar la propiedad CurrentRowSelected
Saludos |
|
| Volver arriba |
|
 |
|