pantalla de entrada de datos actualiza los objetos del modelo en tiempo real, proporciona deshacer y rehacer, actualizar en tiempo real a un objeto de modelo con el patrón de comandos

StackOverflow https://stackoverflow.com/questions/3425217

Pregunta

El patrón de comandos conocido menudo se utiliza cuando se desea implementar un modelo con capacidad de deshacer / rehacer. Busco a una implementación de referencia (ejemplo) de una forma simple de Delphi que implementa deshacer / rehacer.

Por lo que he visto, simple delphi formas de entrada de datos con tres cuadros de edición, seis cajas de notas, y unos cuadros combinados y otros controles de edición sencilla, típicamente no admite deshacer / rehacer.

Alguien ha visto un enfoque delphi bien diseñado para soportar deshacer / rehacer de múltiples niveles para un diseño de modelo-vista-controlador complejo usando una vista Delphi separado (forma), y los objetos del modelo (objetos de datos se actualizan de forma síncrona con todos los cambios a la forma, y ??la validación y la lógica de control no se incrusta en la forma, o en el modelo, pero separadas hacia fuera.

Me parece que si usted no tiene que utilizar MVC, y que se necesita para simplemente un prototipo de demostración de Delphi aplicación que no tenía ningún modelo o controlador objetos, que deshacer / rehacer de una simple pura Delphi "one-forma- es-mi-app" sería más fácil de diseñar, pero sería más complicado conseguir como sea necesario para grabar y reproducir objetos y sincronizarlos a acciones de formulario Delphi como TEdit.OnChange.

¿Fue útil?

Solución

Se debe utilizar patrones de los partidarios:

  • Modelo-GUI-Mediador
    - sincronía entre los objetos de modelo y de control de interfaz gráfica de usuario, por lo que no está limitado por TDataset y controles DB-Aware. Puede crear controles en cuenta al objeto de controles CADA VCL.
  • Comando
    - sus acciones en el modelo de objetos. En caso de ser despedido por los controladores.
  • Memento
    - ahorro de estado interno de los objetos de datos para implementar el comportamiento de deshacer / rehacer

ASAP I'will poner un ejemplo sencillo en mi blog www.danieleteti.it

Otros consejos

probablemente me base que en un ClientDataSet:. Que tiene capacidad de deshacer (y si no recuerdo mal, es bastante fácil de implementar rehacer con él también)

Bono:. Puede utilizar los controles conscientes de datos

Tengo la sensación de que está buscando algún tipo de ORM como el comportamiento.
En DelphiLive estaré hablando en hacer una especie de capa ORM basado en ClientDataSets; que son bastante buenos.

- Jeroen

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top