Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   cambio del valor de un control X (https://www.clubdelphi.com/foros/showthread.php?t=95878)

steelha 21-09-2022 18:03:15

cambio del valor de un control X
 
Buenas, acá con otra consulta. He buscado en el foro no se si hice mal la consulta pero no he encontrado sobre lo que necesito. Tengo un form para saber o guardar los datos sobre los roles de un perfil X. cuando cambio de perfil limpio los controles perfecto hasta ahí. cuando doy click en un perfil y cargo los valores desde la DB si es que existe, en caso de cargar datos si es solo para verificar no habría problema pero si modifica un valor debo activar el boton GUARDAR DATOS, necesito saber si se cambio algún valor (las mayorías checkbox y dos edit). Alguna idea o solución existente Muchas Gracias

Casimiro Notevi 21-09-2022 19:58:38

Si usas dbedit, dbcombobox, db... estarán asociados a un datasource y este a un dataset que te dirá cuándo se ha modificado.
No das información suficiente para ayudar.

steelha 21-09-2022 20:34:00

Gracias por contestar Casimiro, pero no las mayorias son checkbox y dos edit para nombre y descripcion si alguno de ello se modifica se debe activar el boton pero si solo se modifica algun valor de ellos

Casimiro Notevi 21-09-2022 21:01:54

Bueno, tienes el evento "change" del componente.

steelha 21-09-2022 21:22:53

ok verificare y probare a ver que sale

Neftali [Germán.Estévez] 22-09-2022 10:13:32

Cita:

Empezado por Casimiro Notevi (Mensaje 548384)
Si usas dbedit, dbcombobox, db... estarán asociados a un datasource y este a un dataset que te dirá cuándo se ha modificado.

Es este caso parece que los más lógico sería utilizar controles DataAware (DbEdit, DBCheckbox,...); en ese caso tal y como ha comentado [casimiro] el Dataset te da información de si ha habido cambios, y de qué controles han cambiado.

Cita:

Empezado por steelha (Mensaje 548385)
...pero no las mayorias son checkbox y dos edit para nombre y descripcion si alguno de ello se modifica se debe activar el boton pero si solo se modifica algun valor de ellos

Con controles normales debes controlalo tú.

Cita:

Empezado por Casimiro Notevi (Mensaje 548386)
tienes el evento "change" del componente.

Una opción es controlar el evento OnChange de todos los componentes, para ir guardando los cambios, la otra forma es guardar el estado "inicial" antes de que el usuario modifique algo e ir controlando el estado en cada momento para detectar cambios. Comparar "EstadoInicial" con "EstadoFinal". De esa forma saber si hay cambio y qué componentes han cambiado.

steelha 22-09-2022 13:08:41

Muchas gracias Neftali, eso hare.

steelha 22-09-2022 15:24:16

Gracias a todos, pude resolver definiendo una variable privada abtn a la cual le asigno 0 (cero) al inicio (form.create or form.show). Luego agrege un timer para que verifique el valor de abtn.

Código Delphi [-]
procedure Tfrmroles.Timer1Timer(Sender: TObject);
begin
  if abtn = 1 then
    btnGuardar.Enabled := True
  else
    btnGuardar.Enabled := False;
end;

Algo simple, ya que no todos los controles poseen el evento OnChange. Como los check les coloque en el evento Onclick abtn igual 1. Si cambiamos el valor del combo es decir que cambiamos de perfil sin guardar deshabilito y limpio los controles y a abtn asigno 0 (cero).

Muchas gracias por la ayuda.


La franja horaria es GMT +2. Ahora son las 21:28:51.

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