Ver Mensaje Individual
  #1  
Antiguo 06-08-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile ¿Cómo le llamarían a nueva propiedad de TDataSource?

¡Hola a todos!

Hace tiempo vengo creando algunos componentes de acceso a datos derivados de varios nativos de Delphi 7. Ya hice algunos derivados de dbExpress, TDataSetProvider, TClientDataSet y TDataSource, y últimamente he estado implementando clonaciones de objetos (crear un componente de la misma clase que otro, copiando los valores de sus propiedades publicadas).

Bien, resulta que estoy por agregar una nueva propiedad de tipo Boolean en la clase "TMiDataSource" (hija de TDataSource), cuyo propósito será indicarle a la fuente de datos si en tiempo de ejecución deberá usar el conjunto de datos asignado en tiempo de diseño en su propiedad DataSet, o si deberá crear un "clon" de ese conjunto de datos, adueñarse de él y usarlo en sustitución del conjunto de datos original.

La idea surge ante el deseo de evitar definir en tiempo de diseño dos conjuntos de datos muy similares con casi los mismos valores de propiedades, eventos y campos persistentes, y donde la única diferencia es que uno se utilizará sin filtro y el otro con filtro (para relación maestro-detalle u otros propósitos), pero siendo ambos usos simultáneos por tener abiertas dos formas que acceden respectivamente a cada uno.

Coloco el conjunto de datos en un módulo de datos y un "TMiDataSource" en cada forma. En uno de éstos dejaré la nueva propiedad con un valor de False y en el otro la pondré con un valor de True. La idea es que al cargarse la segunda forma y la conocida propiedad DataSet del componente, éste verifique que su propiedad X (la nueva propiedad) es True y ante ello clone el objeto al que apunta la propiedad DataSet y sustituya el valor de ésta. Siendo el nuevo DataSet un objeto adueñado por el componente, de tal manera que sea destruido cuando la fuente de datos se libere al cerrar la forma.

¿Cómo debe llamarse la nueva propiedad?

He pensado que podría ser CloneDataSet, UseClone o UseCloneDataSet pero me gustaría escuchar sus sugerencias y de paso perfeccionar la idea con sus opiniones respecto a esta idea.

Muchas gracias.

Un abrazo clonado.

Al González.
Responder Con Cita