Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-07-2006
vicrati vicrati is offline
Miembro
 
Registrado: abr 2004
Posts: 30
Poder: 0
vicrati Va por buen camino
DBGrid+checkbox

hola,
a ver os cuento.
Resulta que tengo implementado un DBgrid con un checkbox que funciona correctamente, el checkbox asociado a un campo logico.
Va bien, es decir, cuando marca la 'celda' del checkbox me modifica en la tabla el estado logico del campo.
Mi problema es que solo quiero que se modifique cuando pincho en el checkbox no en la celda completa.
¿Me explico?
Muchisimas gracias.
Responder Con Cita
  #2  
Antiguo 24-07-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos
Cita:
¿Me explico?
No
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #3  
Antiguo 25-07-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.267
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Dependerá de cómo lo hayas implementado.
Seguro que en algun sitio has programado el cambio del campo segun el checkbox,
¿Puedes poner ese código (como mínimo)?

Si no comprenderás que es casi imposible responderte.
__________________
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.
Responder Con Cita
  #4  
Antiguo 25-07-2006
vicrati vicrati is offline
Miembro
 
Registrado: abr 2004
Posts: 30
Poder: 0
vicrati Va por buen camino
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
Responder Con Cita
  #5  
Antiguo 25-07-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.267
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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.
Responder Con Cita
  #6  
Antiguo 14-08-2006
vicrati vicrati is offline
Miembro
 
Registrado: abr 2004
Posts: 30
Poder: 0
vicrati Va por buen camino
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
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 17:46:41.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi