--- El vie 3-jun-11, Paola Bruccoleri <pbruccoleri en adinet.com.uy> escribi�:
Show quoted text 35 lines
De: Paola Bruccoleri <pbruccoleri en adinet.com.uy>
Asunto: Re: [Lazarus-es] CheckBox en TDBGrid
A: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org>
Fecha: viernes, 3 de junio de 2011, 11:29
El 03/06/2011 12:52 p.m., Ismael L.
Donis Garcia escribi�:
> No entendiste bien, en los datos que traigo de la
consulta no hay problema, el problema es cuando trato de
insertar un registro nuevo (dentro del tdbgrid, trabajo
dentro del grid, tecleo directo en el grid)
>
> Cuando intento insertar un registro nuevo el campo del
tdbgrid que tiene la propiedad
.ButtonStyle:=cbsCheckboxColumn; me aparece en gris y
marcado por defecto y yo quiero que me aparezca desmarcado y
habilitado.
>
> en gris = deshabilitado
> si no est� en gris = habilitado
>
> Repito quiero que cuando me mueva para abajo para
insertar una nueva fila en el TBDGrid la columna me aparezca
habilitada y desmarcado el checkbox. Esto lo he tratado de
hacer buscando alguna propiedad y no lo he encontrado,
tampoco he encontrado como hacerlo en tiempo de ejecuci�n.
>
Hola Ismael..
pero como el dbgrid est� asociado a un table/query,
porqu� no te fij�s en el valor por defecto de ese campo de
la bd? porque cuando insert�s un registro deade ah�
mismo,� internamente se hace un insert..
ojo, capaz que el control siempre muestra checked sin darle
bolilla al valor x defecto...
byeeeeeeeeeee
"Normalmente" un checkbox se utiliza para indicar dos estados, marcado o desmarcado, lo cual esta determinado por los valores de ValueChecked y ValueUnchecked, si para un nuevo registro el valor del campo es NULL el checkbox se mostrara en un tercer estado que es como ya dijiste un checkbox marcado pero deshabilitado.
Se me ocurren 3 soluciones:
1. Crear un evento OnNewRecord en el Dataset asociado al dbgrid, ah� puedes inicializar los valores de los campos que desees, en este caso podr�as poner por defecto el valor correspondiente a ValueUnchecked.
2. Crear un evento OnUserCheckboxBitmap en el dbgrid, de tal manera que cuando tal evento se active teniendo en el parametro CheckedState=cbGrayed regresemos un bitmap identico al utilizado para CheckedState=cbUnChecked
3. Podr�a agregarle a TColumn una propiedad que nos indique que un valor NULL sea siempre considerado como UnChecked, creo que esta soluci�n seria la mas f�cil para los usuarios pues se har�a en tiempo de dise�o, tambi�n no requerir�a cambiar los datos de NULL a alg�n valor como en el caso 1). Lo �nico es que necesitar�a alg�n tiempo para implementar esta opci�n pues de momento aun me encuentro algo ocupado en otras cosas.
Saludos a todos.
Jes�s Reyes A.