2012-09-27 7 views
18

Qual è lo scopo di avere un DataModule nel progetto? Ha proprietà speciali rispetto a una classe o un modulo normale? Quali sono le convenzioni di ciò per cui di solito è usato?Che cos'è il DataModule (dm) in Delphi?

+7

@iManBiglari, non è che ogni domanda qui? –

+1

@UweRaabe Effettivamente –

+1

+1; ottima domanda! Molte persone non pensano nemmeno a dove possa essere usato un DM. –

risposta

18

Un datamodule è una "forma" non visiva (contenitore) che può contenere componenti non visivi (in genere componenti di database, anche se è possibile aggiungere qualsiasi componente, ad esempio finestre di dialogo e componenti Indy) che possono essere condivisi da molti forme.

Questo wiki spiega ulteriormente: Delphi Wikki.

+0

+1; l'essenziale in una frase semplice. Di solito ho un 'TXyzActionDataModule' contenente istanze' TAction' (racchiuse in un 'TActionList' o qualcosa di simile) per un gruppo di forme/fotogrammi che sono collegati attorno ad alcuni feticci' Xyz' comuni. –

+0

+1, e di cui, in Delphi XE2, ricordo di aver provato ad aggiungere componenti non di database a un modulo dati e solo i componenti correlati al database mostrati nella tavolozza ... Da allora sono stato in grado di fare così. –

9

Viene normalmente utilizzato per gli oggetti Dataset e DataSource per mantenerli in una posizione centrale. Un DataModule può contenere solo componenti non visivi, ma non si limita ai componenti di accesso ai dati. È possibile inserire un TTimer su di esso e SaveDialog ecc ...

Può essere utile quando si dispone di più moduli, che devono modificare il codice solo in un unico posto, anziché in ogni modulo.

6

Nelle mie applicazioni desktop, solitamente ho un modulo dati contenente un gruppo di TImageList s. Se le mie applicazioni utilizzano TCP/IP, i componenti si trovano su un modulo dati separato. Ovviamente quasi tutta la logica della mia applicazione va in diversi moduli dati. E, se ho bisogno di creare un'applicazione di servizio, inserisco la logica in un modulo dati in modo da creare facilmente un'applicazione desktop attorno ad esso per il debug. E, ultimo, ma meno importante, ho inserito i miei componenti di accesso ai dati sui moduli di dati la maggior parte del tempo.

9

Un datamodule si differenzia da una classe semplice che può essere progettato all'interno del form designer e i suoi componenti possono essere modificati con l'ispettore dell'oggetto. Il datamodule ha anche una risorsa che viene trasmessa in streaming in un file DFM.

Inoltre, un datamodule può essere utilizzato da altri datamodules, forme e frame e quindi i relativi componenti sono disponibili per la selezione anche nell'ispettore dell'oggetto.

Problemi correlati