• Sábado 21 de Septiembre de 2024, 21:47

Autor Tema:  Crear deshacer/rehacer (undo/redo)  (Leído 2806 veces)

mega74

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Crear deshacer/rehacer (undo/redo)
« en: Domingo 11 de Octubre de 2009, 07:47 »
0
Saludo!
Estoy  haciendo un programita que simula la administración de un hospital (correrá en DOS a punta de menu´s) y necesito tener la opción deshacer y rehacer.

Si tiene alguna idea les agradezco que me la compartan.

gophlb

  • Visitante
Re: Crear deshacer/rehacer (undo/redo)
« Respuesta #1 en: Domingo 11 de Octubre de 2009, 11:29 »
0
Cita de: "mega74"
Saludo!
Estoy  haciendo un programita que simula la administración de un hospital (correrá en DOS a punta de menu´s) y necesito tener la opción deshacer y rehacer.

Si tiene alguna idea les agradezco que me la compartan.
pero la opcion de hacer y deshacer....¿el que?

en cualquier caso es tan simple (solucion asi de primeras sin saber qué necesitas exactamente) como crear un mapa cuya clave sea "Accion realizada" y cuyo contenido sea "Estado anterior". a partir de ahi, como minimo, tienes ya el Undo.

mega74

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Crear deshacer/rehacer (undo/redo)
« Respuesta #2 en: Lunes 12 de Octubre de 2009, 07:18 »
0
Gracias, por tu respuesta....
Pero creo que debo ser mas especifico.

Se trata mas o menos de lo que dijiste, con las opciones de menú, deshacer/rehacer(múltiple) de lo que se ejecute a través del menú que básicamente son opciones como consultas, ingreso de datos y actualizaciones y/o modificaciones de los mismos....


Gracias de nuevo!

gophlb

  • Visitante
Re: Crear deshacer/rehacer (undo/redo)
« Respuesta #3 en: Lunes 12 de Octubre de 2009, 10:00 »
0
las consultas en principio no veo la razon de ser de hacerle un undo/redo, asi que ahi no entro

sobre modificacion de datos (ya sea actualizacion, borrado o insercion):
si es sobre base de datos, create una clase con estructura similar a la tabla que estes modificando (cada columna de la tabla se traduce en una variable de la clase) y luego vas almacenando los valores cambiados/insertados/borrados en una lista a traves de instancias de la clase creada anteriormente.

como consejo: identifica mediante alguna variable si el cambio hecho es insercion, modificacion o borrado. esto facilitara deshacer/rehacer las cosas.
en caso de un borrado, por experiencia, no borraria fisicamente el dato de la BD sino que le pondria un campo de tipo INTEGER (por ejemplo) "estado" cuyos valores sean 0 == borrado y 1 == disponible. esto consigue que si hay que deshacer el borrado no tengas que volver a volcar todos los datos, sino simplemente cambiar el campo "estado" directamente en la BD.

de todas formas, sigues aportando poquitos datos... :P