Ver Mensaje Individual
  #5  
Antiguo 15-06-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 27
Delphius Va camino a la fama
¿Es esto a lo que te refieres?

Hola de nuevo faraonDX.

Cita:
Empezado por faraonDX

Me alegra mucho que hallas, respondido a mis interrogantes, he visto algunos comentarios tuyos en diferentes temas
¿Lo dices por mi? No se que pensar... que alguien lea mis post y comentarios y que esté de acuerdo... me pone rojo de vergüenza. Ja... no... broma. Ta todo bien.

Cita:
Empezado por faraonDX
En realidad tambien pienso que antes de escribir una linea de código hay que tener claro la idea esacta de como quedará el sistema
No tiene que ser exacta. Pero si lo mejor estimada y precisa posible. Al menos yo, por el momento no me podría decir que mi análisis y diseño será exacto y que siempre será para bien.

Cita:
Empezado por faraonDX
despues de un diseño OO no podría o mejor dicho no me sería factible utilizar este tipo de relación entre componentes, ya que los objetos que diseño son los que deben estar en relación con los elementos de la interfaz de usuario.
¿A que te refieres a que no te gusta el modo en que se relacionan los componetes? Es la manera en que se trabja en Delphi. ¡Los dataware deben estar ligados a las fuentes de datos para funcionar!

¿A que haces referencia cuando dices en relacion con los elementos de la intefaz de usuario?

Por lo que logro entender (corrije por favor si me equivoco), tu tienes un diseño basado en OO. Bien perfecto. Creo que tu problema radica en como hacer comunicar tu capa lógica con tu capa de interfaz. Y por la forma en que vienes redactando tu problema es que empleas elementos dataware y estos se comunican derechito con la capa lógica (datasource).
Ve al diseño de la capa pero con zonas:

----------------------------------------------------------------------
Capa Interfaz:
Zona 1: controles simples - Zona 2: controles dataware
----------------------------------------------------------------------
Capa Lógica:
Zona 1: Tu diseño lógico: Clases - Zona 2: Datasource
----------------------------------------------------------------------
Capa Datos:
Zona 1: Datamodule, xxDataBase, Table, etc...
----------------------------------------------------------------------

Es decir, Se tiene dos canales de trabajo, por un lado el conformado por el repertorio de controles aportados por delphi (dataware, datasource, etc) lo que conforma un diseño en tres capas. Y en forma paralela tu diseño.

Ahora que lo veo, posiblemente Table, Query pertenezcan a la capa lógica. Habría que ver que opinan el resto. Bueno, en fin el resultado será el mismo.

Para hacer comunicar tus objetos con la interfaz (independiente del control que sea) se emplean los eventos necesarios que deban dispararse... y pasar el valor de los datos:

Código Delphi [-]
TuForma.TuControlEvento(parametros);
begin
   TuObjeto.Propiedad := Valor a tomar;
   TuObjeto.Evento;
end.

// O....

TuUnidad.TuControlEvento(parametros);
begin
   TuObjeto.Propiedad := Valor a tomar;
   TuObjeto.Evento;
end;

Y esta filosofía es la que permite que se envién y pasen los mensajes entre tus objetos y después envien los datos hacia el receptor correspondiente.

Por ejemplo puedes aprovechar alimentar a tu objeto cuando los datos han cambiado (on Change de un Data Source). El momento indicado de cuando pasar los datos a tus objetos dependerá del diseño de tus diagramas de secuencia (son fabulosos para ver estas cosas) y otros diagramas que UML nos ofrece.

El ejemplo es muy simple...
No tengo un ejemplo preparado (código) para que te ilustre mejor la idea. He visto unos ejemplos de BD y POO en varias ocasiones en estos foros. Busca con esos términos.

Te puedo recomendar que leas UML y patrones. de Craig Larman, si es que no lo haz leído todavía.

Creo que los maestros te pueden dar una mejor perspectiva del asunto.
No se si termino de explicarte, y de explicarme. Lo más probable es que haya quedado tinta en el tintero por mi parte.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita