Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-09-2008
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
¿En qué se diferencia un TDataModule de un TForm?

Mi aplicación tiene varios formularios, uno principal y varios secundarios, y necesito acceder a unos cuantos objetos (los mismos) en todos los formularios.

Para ello lo primero que se me ocurrió fue crear los objetos en el formulario principal y pasar como parámetro aquellos objetos que necesitara a los distintos formularios pero me pareció una chapuza.

Más tarde me comentaron que esto lo podría resolver con un TDataModule creando ahí los objetos y luego accediendo a ellos por medio de la variable DataModule1, pero me he puesto a mirar el TDataModule y no veo ninguna diferencia con un formulario normal y corriente, la única diferencia que veo es que el TDataModule no se ve al ejecutar el programa pero eso lo podemos conseguir poniendo la propiedad Visible de un formulario a False.

¿Tiene alguna cosa interesante de mención el TDataModule o para lo que voy a hacer me valdría también un TForm?

Gracias.
Responder Con Cita
  #2  
Antiguo 25-09-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola,
esto lo preguntaron hace nada. No tiene ninguna diferencia, solo que es un form especial que en tiempo de diseño te permite ver los objetos de base de datos de manera especial, mostrandote, por ejemplo, las relaciones maestro-detalle. Poca cosa mas, pero claro esta, es recomendable usarlo para eso mismo. Saludos.
Responder Con Cita
  #3  
Antiguo 25-09-2008
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
Un DataModule no es visual, es decir en tiempo de ejecución, en ahi se colocan componentes no visuales, la idea es que tu aplicación tenga una capa gráfica (los Formularios) y una capa Lógica (Aqui puedes usar los datamodules).

Sobre todo es cuestión de orden el usarlo o no.
__________________
self.free;
Responder Con Cita
  #4  
Antiguo 25-09-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola noob,
A diferencia del TForm, un TDataModule no se muestra, no es para diseñar interfaces.
Se trata de una "especie" de Form en el que se puede insertar componentes NO visuales.
La traducción de DataModule sería Módulo de datos. Y su principal propósito es de ser un "depósito" de componentes para accedo a bases de datos. Por ejemplo: datasources, TTables, TQuerys, etc.

Por tanto, teniendo estos controles allí no contaminas la interfaz de controles.
Ahora para tener acceso a los controles que contiene el DataModulo debes declarar en uses la unidad correspondiente a dicho DatModule.

Si buscas en los foros sobre DataModule hallarás un poco más de información. Sugiero que leas la ayuda que proporciona Delphi sobre el tema.
Y a como de complemento, leer la Cara Oculta que se encuentra a disposición de todos en el FTP del club.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 25-09-2008
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 16
noob Va por buen camino
Muchas gracias por la info chicos.
Responder Con Cita
  #6  
Antiguo 25-09-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Si me permiten, yo resumiría lo dicho así:

Cita:
Un DataModule es un contenedor de componentes no visuales.
A pesar del nombre, sirve para poner no sólo componentes de acceso a datos, sino cualquier otro componente no visual como un Timer, un ActionList, etc. En todo caso sirve -como ya han dicho- para mantener una sana separación de código.

Ahora, dos comentarios para noob.

No es lo mismo definitivamente, que poner un formulario con su propiedad Visible en false. Un formulario consume más recursos por ser una ventana. Pueden parecer similares, pero eso sólo es durante el diseño, donde el IDE pone unos diseñadores tanto para el DataModule como para el formulario; ésos son los que se ven parecidos. Pero en la ejecución, el formulario consiste de una ventana que ocupa recursos aún estando oculta, mientras que el DataModule no es una ventana.

Por otra parte, mencionas que vas a crear los objetos. Si vas a crear los objetos manualmente por código, de hecho ni siquiera necesitas un DataModule, puedes usar una unidad plana.

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Usar TDataModule de un .exe en un DLL Luzma C++ Builder 2 14-07-2008 23:48:59
Problema de Tdatamodule y Packges Efren2006 OOP 0 04-06-2008 17:35:47
Usar un TDataModule compartido entre un ejecutable y una dll Luzma Conexión con bases de datos 1 18-07-2007 01:37:25
Obtener todos los datasets de un tdatamodule jlrbotella Conexión con bases de datos 3 18-05-2007 08:59:25
Com usar TDataModule? omar_e_rc Varios 1 19-05-2005 22:28:55


La franja horaria es GMT +2. Ahora son las 07:49:41.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi