schermata di inserimento dati aggiorna oggetti del modello in tempo reale, fornisce Annulla e Ripristina, aggiornamenti in tempo reale a un oggetto modello utilizzando modello di comando

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

Domanda

Lo schema dei comandi ben noto è usato spesso quando si desidera implementare un modello con funzionalità Undo / Redo. Sto cercando un'implementazione di riferimento (ad esempio) di una semplice forma di Delphi che implementa Undo / Redo.

Da quello che ho visto, semplice Delphi forme di immissione dati con tre scatole Modifica, sei scatole memo, e un paio di caselle combinate e altri semplici controlli di modifica, non tipicamente supporta Undo / Redo.

Qualcuno ha visto un approccio Delfi ben progettato per multi-livello di supporto undo / redo per un design model-view-controller complesso con una vista di Delphi separata (forma), e oggetti del modello (oggetti dati vengono aggiornati in modo sincrono con tutte le modifiche a la forma e la validazione e la logica di controllo non è incorporato nella forma, o nel modello, ma separati fuori.

Mi sembra che se non c'era bisogno di usare MVC, e si doveva semplicemente prototipo un Delphi demo app che aveva per modello o del controller oggetti, che Undo / Redo di un semplice puro Delphi "one-form- is-my-app" sarebbe più semplice da progettare, ma sarebbe ottenere più complicato di cui hai bisogno per registrare e riprodurre oggetti e sincronizzarli per Delphi azioni modulo come TEdit.OnChange.

È stato utile?

Soluzione

Si dovrebbe usare seguiti modelli:

  • Modello-GUI-mediatore
    - synch tra oggetti modello e controllo GUI, in modo da non sono limitati da TDataset e controlli DB-aware. È possibile creare controlli degli oggetti-aware dai controlli OGNI VCL.
  • Comando
    - le vostre azioni sul modello oggetti. Dovrebbe essere licenziato dal Controller.
  • Memento
    - stato di risparmio interno oggetti di dati che per l'attuazione del comportamento Annulla / Ripristina

ASAP I'will inviare un semplice esempio sul mio blog www.danieleteti.it

Altri suggerimenti

sarei probabilmente base che su un ClientDataSet:. Che dispone di funzionalità Annulla (e se non ricordo male, è abbastanza facile da implementare rifare con esso pure)

Bonus:. È possibile utilizzare i dati di controllo consapevole

Ho la sensazione che siete alla ricerca di un qualche tipo di ORM come comportamento.
A DelphiLive Parlerò a fare una sorta di strato di ORM sulla base di ClientDataSets; essi sono piuttosto fresco.

- Jeroen

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top