Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: Ever Cerna en Marzo 04, 2010, 03:29:51 am

Título: Saber si se hicieron cambios es los TextBox
Publicado por: Ever Cerna en Marzo 04, 2010, 03:29:51 am
Wenas una consultilla, saben que api puedo usar para poder detectar los cambios que se realizaron en un control textbox. estuve buscando por google y no encontre mucha info, bueno tengo un formularios con varios text la cual muestro mi contenido de la BDD MySQL, bueno ahora si yo modifico algunos datos de los text necesariamente tengo k hacerle click en un boton que puse de actualizar y weno k pasaria si cerrara el prog sin haber guardado los cambios realizados obviamente no se guardarian entonces aqui vino mi inquietud de saber si se hiso cambios en el los text cosa que asi me avisara mediante un msgbox que "se hisieron cambios ¿desea usted guardarlos?",  :P weno esa es la idea haber si me dan una manito. Slu2.
Título: Re:Saber si se hicieron cambios es los TextBox
Publicado por: erbuson en Marzo 04, 2010, 04:01:49 am
Te cuento lo que yo hago, no se si lo mas apropiado pero me funciona.
Debes definir una variable tipo Boolean que comprobarás antes de Salir y modificarla en el evento Change del Text

Private Modificado As Boolean

Cuando visualizas en pantalla los valores procedentes del Registro de datos, Modificado = False

En el evento Change como te decia antes Modificado = True

En la salida, If Modificado Then ...


Título: Re:Saber si se hicieron cambios es los TextBox
Publicado por: YAcosta en Marzo 05, 2010, 02:45:24 am
Wenas una consultilla, saben que api puedo usar para poder detectar los cambios que se realizaron en un control textbox. estuve buscando por google y no encontre mucha info, bueno tengo un formularios con varios text la cual muestro mi contenido de la BDD MySQL, bueno ahora si yo modifico algunos datos de los text necesariamente tengo k hacerle click en un boton que puse de actualizar y weno k pasaria si cerrara el prog sin haber guardado los cambios realizados obviamente no se guardarian entonces aqui vino mi inquietud de saber si se hiso cambios en el los text cosa que asi me avisara mediante un msgbox que "se hisieron cambios �desea usted guardarlos?",  :P weno esa es la idea haber si me dan una manito. Slu2.

Hola, ojo no solo con clicks llegas a un TextBox, también llegas usando la tecla Tab.
Pero es cierto, como dijo erbuson seria bueno uses una variable bolean, yo hago lo mismo.
Para reafirmar, al iniciar, la variable modificado será False, y en evento Unload si la variable es false mandas un msgbox advirtiendo, si es true no manda nada.

Sin embargo, esto lo aplicaría si se tratase de un formulario destinado a la edición de registros, sino en todo caso te recomiendo parametrizar el tema.

Otra alternativa seria poner un sólo label mas o menos grande y de un color llamativo que diga: "Datos sin Modificar", al modificar uno de ellos cambiar a "Datos Modificados", y si tienes un botón "Grabar" al ejecutarlo el label cambiara a "Datos Modificados y Grabados".
Es una idea.

Saludos

Título: Re:Saber si se hicieron cambios es los TextBox
Publicado por: Ever Cerna en Marzo 05, 2010, 08:46:31 pm
Wenas gracias por las ayudas pero, tengo una ultima duda por ejemplo si yo escribo o modifico algo en el text y luego se me ocurre dejarlo como estava anteriormente, alli en ese caso en el evento change estaria en false, pero ya escribi algo en el texto por lo tanto ya esta en true y como dije anteriormente cambie el texto y luego lo volvi a dejar como estava entonces igual me va a decir que guarde los cambio cuando en realidad lo deje como estava anteriormente, weno no se si se entienda mi inquietud.

Slu2..
Título: Re:Saber si se hicieron cambios es los TextBox
Publicado por: erbuson en Marzo 05, 2010, 09:36:36 pm
Hola, personalmente pienso que estas liando demasiado la madeja, ya que de este modo, no te basta un indicador de modificado sino que por lo menos necesitarias 1 para cada campo, por otra parte al presentar los datos deberías saber lo que tienes inicialmente ya que puedes modificarlo, salir del campo, volver a entrar, dejarlo como estaba y ¿ que pasa con el Modificado = True ? y si en el campo uno si lo modificaste y dejaste True y en el 2 entras lo modificas y despues lo dejas como estaba ¿ lo pondras en false ? si es así se va a ir al carajo la modificación del campo1

Creo que lo estas complicando, no es imposible, pero si complicado. Depende de lo que prtendas conseguir y cuando quieras complicarte la existencia.
Título: Re:Saber si se hicieron cambios es los TextBox
Publicado por: Ever Cerna en Marzo 05, 2010, 11:05:47 pm
 ;D ok weno gracias por sus respuestas solo era una duda weno voy haber que consigo con sus ayudas brindadas gracias.
Título: Re:Saber si se hicieron cambios es los TextBox
Publicado por: cobein en Marzo 06, 2010, 09:53:29 pm
Lo que yo uso en algunos codigos para tener autosave es un hash de los datos originales y al salir calculas nuevamente el hash de los datos que tenes, si difiere simplemente guardas o advertis al usuario; de esa manera se guarda unicamente cuando los datos realmente difieren de los originales.
Título: Re:Saber si se hicieron cambios es los TextBox
Publicado por: Ever Cerna en Marzo 07, 2010, 05:31:28 pm
@ cobein
Me podrias poner un ejemplo, claro si no fuera molestia  :-\
Título: Re:Saber si se hicieron cambios es los TextBox
Publicado por: ssccaann43 en Marzo 08, 2010, 11:16:01 am
Puedes usar un módulo de clase MD5, con eso haces la comparación...! No es complicado, y es la mejor solución...! Grande Cobein...! No se me había ocurrido esto...!
Título: Re:Saber si se hicieron cambios es los TextBox
Publicado por: cobein en Marzo 08, 2010, 11:22:53 pm
Una aclaracion, lo del hash es simplemente para no tener una copia de los datos originales en memoria en el caso de que sean muchos.

Ejemplo... no hay mucho que hacer simplemente busca algun modulo para calcular hashes y le pasas los datos ... creo que los que estan por ahi afuera no soportan "streaming" pero pasas los datos de a uno y los vas concatenando con el ultimo hash.
Título: Re:Saber si se hicieron cambios es los TextBox
Publicado por: ssccaann43 en Marzo 09, 2010, 12:33:34 pm
Una aclaracion, lo del hash es simplemente para no tener una copia de los datos originales en memoria en el caso de que sean muchos.

Ejemplo... no hay mucho que hacer simplemente busca algun modulo para calcular hashes y le pasas los datos ... creo que los que estan por ahi afuera no soportan "streaming" pero pasas los datos de a uno y los vas concatenando con el ultimo hash.

Cobein, con una clase que obtenga el MD5 funcionaría?
Título: Re:Saber si se hicieron cambios es los TextBox
Publicado por: coco en Marzo 09, 2010, 04:24:02 pm
Una aclaracion, lo del hash es simplemente para no tener una copia de los datos originales en memoria en el caso de que sean muchos.

Ejemplo... no hay mucho que hacer simplemente busca algun modulo para calcular hashes y le pasas los datos ... creo que los que estan por ahi afuera no soportan "streaming" pero pasas los datos de a uno y los vas concatenando con el ultimo hash.

Cobein, con una clase que obtenga el MD5 funcionaría?

MD5, MD4, CRC32, SHA1, lo que quieras! ya que son todos hash, y si la variable que le pasas es igual, el hash deberia ser el mismo!. para cerrar la idea MD5(txtCampo1.text & txtCampo2.text) y asi sucecivamente. eso ni bien lo cargan lo guardan en una variable estatica, y luego a la hora de ver si se modifico, se vuelve a hacer el MD5 y se compara con el anteriormente guardado.

saludos
Título: Re:Saber si se hicieron cambios es los TextBox
Publicado por: ssccaann43 en Marzo 09, 2010, 04:31:11 pm
Entonces he acertado...! Que use el MD5 para mi es mejor..! XD
Título: Re:Saber si se hicieron cambios es los TextBox
Publicado por: wolf_kof en Marzo 10, 2010, 06:34:27 pm
Demasiado para una sola cosa Mejor Que Comience de Nuevo JEJEJEJEJEJE
Título: Re:Saber si se hicieron cambios es los TextBox
Publicado por: seba123neo en Marzo 16, 2010, 11:46:53 am
Hola, para hacer el simple "se hisieron cambios ¿desea usted guardarlos?" simplemente implementas una clase que tenga cargados los datos y despues te haces un metodo que chequee todas las propiedades si estan como cuando la cargaste y si llega a diferir una , mostrar el msgbox, mas simple imposible...

saludos.