2012-09-27 43 views
18

¿Cuál es el propósito de tener un DataModule en su proyecto? ¿Tiene alguna propiedad especial en comparación con una clase o módulo normal? ¿Cuáles son las convenciones de para qué se usa habitualmente?¿Qué es el DataModule (dm) en Delphi?

+7

@iManBiglari, ¿no son todas las preguntas aquí? –

+1

@UweRaabe Indeed –

+1

+1; gran pregunta! Mucha gente ni siquiera piensa en dónde podría usarse un DM. –

Respuesta

18

Un módulo de datos es un "formulario" no visual (contenedor) que puede contener componentes no visuales (generalmente componentes de bases de datos, aunque se puede agregar cualquier componente, como diálogos y componentes Indy) que pueden ser compartidos por muchos formas.

Este wiki explica más detalladamente: Delphi Wikki.

+0

+1; lo esencial en una oración simple. Normalmente tengo un 'TXyzActionDataModule' que contiene instancias' TAction' (empaquetadas en 'TActionList' o algo similar) para un grupo de formularios/marcos que están relacionados con alguna característica común de' Xyz'. –

+0

+1, y hablando de eso, en Delphi XE2, recuerdo haber intentado agregar componentes que no son de base de datos a un Módulo de datos y solo los componentes relacionados con la base de datos se mostrarían en la paleta ... Desde entonces he podido hazlo. –

9

Normalmente se utiliza para los objetos Dataset y DataSource para mantenerlos en una ubicación central. Un DataModule solo puede contener componentes no visuales pero no está limitado a los componentes de acceso a datos. Puede poner un TTimer en él y GuardarDialog, etc ...

Puede ser útil cuando tiene varios formularios, necesitando cambiar el código solo en un lugar, en lugar de cada formulario.

6

En mis aplicaciones de escritorio, generalmente tengo un módulo de datos que contiene un montón de TImageList s. Si mis aplicaciones usan TCP/IP, los componentes están en un módulo de datos separado. Por supuesto, casi toda la lógica de mi aplicación va en diferentes módulos de datos. Y, si necesito crear una aplicación de servicio, pongo mi lógica en un módulo de datos para que pueda crear fácilmente una aplicación de escritorio para la depuración. Y, por último, pero menos, pongo mis componentes de acceso a datos en módulos de datos la mayor parte del tiempo.

9

Un módulo de datos difiere de una clase simple que se puede diseñar dentro del diseñador de formularios y sus componentes se pueden editar con el inspector de objetos. El módulo de datos también tiene un recurso que se transmite en un archivo DFM.

Además, un módulo de datos puede ser utilizado por otros módulos de datos, formularios y marcos, y luego sus componentes también están disponibles para su selección en el inspector de objetos.

Cuestiones relacionadas