FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Este es el metodo que lo dibuja el check
procedure TWVentana.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var Check: Integer; R: TRect; XVentana:TRecVentana; begin if Column.FieldName = 'L_SEL_REM' then //indico la columna donde lo quiero poner begin DBGrid1.Canvas.FillRect(Rect);//Rellenas en el drid un rectangulo Check := 0; if FTBVentana.FindField('L_SEL_REM').AsBoolean = true then Check := DFCS_CHECKED; R:=Rect; // InflateRect(R,-2,-2); //Disminuye el tamaño del CheckBox DrawFrameControl(DBGrid1.Canvas.Handle,R,DFC_BUTTON, DFCS_BUTTONCHECK or Check); end; end; y este es el metodo de cambio de estado del check procedure TWventana.DBGrid1CellClick(Column: TColumn); var Xventana:TRecventana; begin FTBVentana.DisableControls; try if Column.FieldName = 'L_SEL_REM' then begin FTBVentana.edit; try if FTBVentana.FieldByName('L_SEL_REM').AsBoolean = true then FTBVentana.FieldByName('L_SEL_REM').AsBoolean := false else FTBVentana.FieldByName('L_SEL_REM').AsBoolean := true finally FTBVentana.Commit; end; Dbgrid1.Refresh; // quizás más bien un Repaint.... pero en fin. end; finally FTBVentana.EnableControls; end; end; entonces si yo pincho con el raton en cualquier parte de la celda donde esta el checkbox me cambia el estado, y solo quiero que me cambie el estado cuando pincho justamente en el checkbox. Gracias |
#2
|
||||
|
||||
Antes de nada te recomiendo que utilices TAG's en los mensajes. Puedes empezar por editar el de arriba y añadirlas.
En cuando al problema, está claro que para detectar si haces un click dentro del recuadro, debes tener las coordenadas X e Y; Para eso tal vez deberás utilizar algun otro evento combinado con el que ya utilizas. Prueba con el OnMouseDown; Y a ver si a a partir de ese eres capaz de obtener las coordenadas relativas a la celda. Revisa, haz alguna pruba y ya dirás...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. Última edición por Neftali [Germán.Estévez] fecha: 25-07-2006 a las 12:05:33. |
#3
|
|||
|
|||
hola ya consegui hayar las coordenadas y todo va casi perfecto.
Resulta que cuando tengo la celda con el check marcado y ademas la celda seleccionada y quiero desmarcar ese check no me deja, se deja de visualizar el check y sale a la izquierda de la celda la palabra true o false segun este marcado o desmarcado. La unica manera de marcar o desmarcar es quitando la seleccion de la celda. No tengo ni idea porque me pasa esto. ¿Alguien sabe? Gracias |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Checkbox en un dbgrid | el_barto | OOP | 7 | 25-08-2005 10:08:21 |
DBGrid con CheckBox | lgarcia | OOP | 2 | 03-03-2005 22:15:30 |
DBgrid y Checkbox | santi | Varios | 2 | 24-01-2005 18:25:53 |
DBGrid y CheckBox | seb@ | OOP | 2 | 17-10-2003 15:04:54 |
CheckBox en un DBGrid | DJ VMan | MySQL | 4 | 26-06-2003 17:05:26 |
|