PDA

Ver la Versión Completa : Colorear fila dbgrid


Besto
28-12-2009, 22:56:33
Hola,

he mirado por los foros y lo que encuentro no me funciona.

Quiero colorear una fila de dbgrid pero tengo la propiedad dgEditing a true y dgRowSelect a false.

Lo que he encontrado me colorea una celda, pero yo quiero colorear toda la fila.

Si alguien sabe la solución lo agradecere infinito.

Gracias

oscarac
28-12-2009, 23:55:36
facil
puedes hacer esto
dependiendo de una condicion de la fila

te ubicas en DrawColumnCell


const
clPaleGreen = TColor($CCFFCC);
clPaleRed = TColor($CCCCFF);
begin
if Column.Field.Dataset.FieldbyName('CAMPO').AsString = Condicion
then
if (gdFocused in State)
then dbgPlanilla.canvas.brush.color := clBlack
else dbgPlanilla.canvas.brush.color := clPaleGreen;
//Esta línea es nueva
dbgPlanilla.DefaultDrawColumnCell(rect,DataCol,Column,State)



espero te sirva

Besto
29-12-2009, 18:00:37
Gracias oscarac, pero eso es lo que intente y solo me colorea una celda, lo que necesito es colorear o cambiar la fuente, me da igual, toda la fila.

Yo creo que el problema viene porque hay un par de campos que son editables, por lo que dgEdit esta a true y dgRowSelect está a false.

oscarac
29-12-2009, 20:40:39
estas seguro?
yo acabo de colocar los mismos valores a las propiedades que mencionas y funciona bien

Besto
01-01-2010, 22:20:04
Has puesto un dbGrid con las siguientes propiedades a true:

dgEditing,dgTitles,dgColLines,dgRowLines,dgAlwaysShowSelection,
dgConfirmDelete,dgCancelOnExit

el resto a false,

Has puesto la funcion que mandaste y te cambia toda la fila, no solo el campo en el que estas?

Porque a mě no hay forma, solo me funciona si cambio y quito el dgEditing lo pongo a false y el dgRowSelect a true.