Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Deshacer....Rehacer....¿como Se Puede Programar?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Deshacer....Rehacer....¿como Se Puede Programar? 
 
Estamos acostumbrado a ver programas que deshacen/rehacen las acciones que hemos realizados (metemos datos, pulsamos botones de aceptar y volvemos a pulsar deshacer, y deshace hasta el nivel que queremos)

Se que algunas veces (cuanto metes textos en textbox tiene esa opción) pero me gustaría que lo tuviera el programa en general, como hace Gimp: deshaces dibujar, crear capas, cambiar colores, etc....creo que tiene un nivel infinito de deshacer...

 ¿como se puede programar esto?, para mi es una misterio...a resolver.....


Saludos...
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Deshacer....Rehacer....¿como Se Puede Programar? 
 
Ertale se me acaba de ocurrir una idea un poco descabellada y si colcamos un reloj que registre un tiempo y al momento q pulses el boton de atras este cordinado con el reloj y este controle a los demas elementos del formulario textbox, combobox etc etc jejeje
 



 
Fenriz07 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Deshacer....Rehacer....¿como Se Puede Programar? 
 
ufff..

Yo pensaba el algo parecido en llevar un "registro" de lo que ibas haciendo.

Por ejemplo "pulsar aceptar" (hacer click) , y en el registro pones "1 pulsa aceptar boton X formulario X".
Luego escribes en un textbox, y cuando terminas (pulsa ENTER), pues genera un registro "2 textbox X formulario X texto introducido.text"
Y así vas generando registros....("describiendo lo que haces y los datos que introduces")

Cuando pulsas el botón de deshacer, lee el ultimo registro y "interpreta lo que has echo", por ejemplo para  el registro "2" borrar el texto introducido en el textbox x formulario X

Hasta aquí es sencillo, pero la cosa se complica cuando realmente estas ejecutando un código, tendrías que  "desejecutarlo", por decirlo de alguna manera... Si introduces un registro en una base da dato: funcion_introduce(dato), habría que crear una función contraria: funcion_quita(dato), ese "dato", vendría dado por el registro.


El caso es que llegado a un extremo, habría que realizar un programa "duplicado", con las acciones y sus contraacciones, e ir interpretando las contraacciones con los datos proporcionado con el registro.


Es algo que me parece complicado de hacer (sobre todo en grandes programas con muchas opciones)... pero se podría hacer ......¿alquilen otra idea?


Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Jueves, 19 Agosto 2010, 12:27; editado 1 vez 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Deshacer....Rehacer....¿como Se Puede Programar? 
 
¿Y si mantienes un buffer? Es decir, registrar todo lo que el usuario haga, pero hasta que no "Guarde los cambios", no se hará nada. Por ejemplo, si retocas una imagen en GIMP, éste trabaja con un buffer, no estás editando la imagen directamente, por eso luego tienes que guardar los cambios. Bueno, es una idea.

Saludos
 



 
 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Deshacer....Rehacer....¿como Se Puede Programar? 
 
Ayortano escribió: [Ver mensaje]
¿Y si mantienes un buffer? Es decir, registrar todo lo que el usuario haga, pero hasta que no "Guarde los cambios", no se hará nada. Por ejemplo, si retocas una imagen en GIMP, éste trabaja con un buffer, no estás editando la imagen directamente, por eso luego tienes que guardar los cambios. Bueno, es una idea.

Saludos

    Amigo, me sacaste las palabras de la boca. Creo que eso es lo que hacen los programas, ir almacenando los datos sin guardarlos hasta que tú le das guardar. Viste que incluso cuando borrás un registro de una base de datos te avisa "esta acción no se podrá deshacer". Es un tema sin duda complejo. Además cuanto más hacia atrás pueda ir el programa más recursos consume y hay que ponderar el costo-beneficio de este recurso. Eso sí, ni idea de como hacerlo. Suerte.
 




===================
Migrando desde visual basic, el Gambas de Ms
Mi blog gambero
 
Dani26 - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Deshacer....Rehacer....¿como Se Puede Programar? 
 
Ayortano:

Entiendo que el Buffer, seria como lo que comentaba de un archivo donde guardas lo que haces (click, meter datos, borrar, etc) ¿no?

    Que cosa mas interesante (deshacer/rehacer) .... una cosa que estamos harto de ver  en los programas habituales...

A ver si encontramos alguno que nos comente como se hace realmente.....o que nos confirme que se hace de esa manera , mediante buffer...


Saludos...
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Deshacer....Rehacer....¿como Se Puede Programar? 
 
ehhh.... he encontrado algo interesante en san google:

Patron de Diseño de Software Memento  


pero..... bueno ahora que lo pienso.... si nuestro entorno IDE de gambas tambien tiene "hacer y deshacer".... habra que estudiar el codigo fuente del IDE de gambas....

 hacer_y_deshacer

a ver como lo hace...  
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Deshacer....Rehacer....¿como Se Puede Programar? 
 
Sì, con las funciones Redo y Undo de cada control   Por ejemplo, en un Editor, haces:

Editor1.Redo()

Y deshace lo escrito.
 



 
 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Deshacer....Rehacer....¿como Se Puede Programar? 
 
Ayortano escribió: [Ver mensaje]
Sì, con las funciones Redo y Undo de cada control   Por ejemplo, en un Editor, haces:

Editor1.Redo()

Y deshace lo escrito.


sin duda una de las mejores opciones ... lo utilizo y  funcionan de 10

Saludos
 



 
TrueneX - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Deshacer....Rehacer....¿como Se Puede Programar? 
 
hola disculpen, estoy diseñando unas interfaces en gambas y por equivocación borre unos controles en el formulario y necesito deshacer los cambios como hago por fa auxilio...existe algun comando o algo que me permita hacer eso ya que el botón no sirve
 



 
magdalena - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes ¿como Hago Un Reporte En Un Pdf? cyberx0x General 8 Domingo, 20 Diciembre 2009, 12:36 Ver último mensaje
jsoto61
No hay nuevos mensajes ¿como Se Puede Crear Una Ventana Para Ver... jsbsan General 4 Domingo, 20 Enero 2013, 11:32 Ver último mensaje
jguardon
No hay nuevos mensajes Cómo Rehacer O Deshacer Una Acción Ricardo Prieto General 3 Miercoles, 04 Octobre 2017, 17:06 Ver último mensaje
Ricardo Prieto
No hay nuevos mensajes No Se Puede Ejecutar Proceso Hijo, No Se P... Shell General 4 Miercoles, 23 Enero 2019, 00:39 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron