Ver Mensaje Individual
  #9  
Antiguo 02-08-2019
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Reputación: 17
juank1971 Va por buen camino
Si esa idea del helper esta buena. pero todavía esto que hice no está funcionando muy eficiente, porque que sucede realmente :
Para que no esté mandando la consulta de update constantemente a MySQL con cada click , porque a lo mejor el usuario marca y desmarca y vuelve a marcar y vuelve a desmarcar, debo comprobar primero que si esta modify el FDQuery y creo que lo mejor es hacer el update en el onmouselive cuando el mause abandona el control,
Porque también sucede otra cosa que nunca había comprobado en Delphi, si das un solo click arriba de un control DB conectado a datos cuando chequeas en el fdquery si esta modify no lo está todavía, al parecer en el evento onclick de un control conectado a datos el dataset no se ha refrescado aun cuando ocurre el evento onclick del DBCheckbox.

Si das click en varios DBCheckbox si se cambia la propiedad Modify del FDQuery pero si das click en un solo DBCheckbox no se cambia Modify, entonces creo que voy a hacerlo en el onmouselive y lo que hago es poner una variable global que me guarde el nombre del componente DBCheckbox donde fue hecho el click y en el onmouselive chequeo primero que este el mouse saliendo del control que previmente di clcik para mandar a hacer el Update porque de lo contrario se ejecutaría el update en cada onmouselive de cada control , entonces con esa variable global voy a forzar a hacer un update correctoen el click que se ejecuto previo, no se si me explique. el problema nuevo que me encontre que no sabia que existia es ese que explique antes que cuando tocas con un solo click un control conectado a datos y chequeas el dataset este no ha refrescado los cambios, no encontre ninguna propiedad que cambiara, ni en el datasourse tampoco. pruebenlo y me dicen si les sucede igual.
Responder Con Cita