[Lazarus-es] Programando con Objetos

Julio C. Taborda julio_taborda en yahoo.com.ar
Sab Jul 25 15:21:00 CEST 2009


Hola Giuseppe,
> 
> En Smalltalk, me acostumbré a trabajar sólamente con "Objetos". Mis  
> objetos guardaban colecciones de otros Objetos (Objeto Empresa ->  
> variable de instancia, colección de Clientes), y no tenía que  
> preocuparme de la Vista, o de la persistencia, que podía tenerla en  
> cuenta más tarde. Éste acercamiento me gusta mucho, y, puesto ahora  
> sólo pienso en Browsers, Inspectors y Debugger de Smalltalk, se me  
> hace cuesta arriba trabajar con Lazarus/Delphi. 

No conozco smalltalk, pero para programar con objetos hace un tiempo
que vengo probando el framework tiopf (http://tiopf.sourceforge.net/).
Este framework tiene 2 clases (tiobject y tiobjectlist) que se usan
como base de tus propias clases (p.ej. tempresa=class(ttiobject)) y trae
distintos métodos para la persistencia de datos.

Una pequeña introducción:
http://tiopf.sourceforge.net/Doc/overview/index.shtml
http://tiopf.sourceforge.net/Doc/QuickStart/


> Me gustaría poder seguir ese modelo en Lazarus (MVC vamos, pero a  
> poder ser, sin usar frameworks de terceros). Poder tener mis objetos  
> independientes, de la vista, y de la persistencia. 

Una vez creados los objetos, para la persistencia hay que seleccionar
que capa de persistencia se quiere usar por defecto y establecer los
datos de la conexión a la base de datos.


> Lo que, no se me  
> ocurre, es, si yo guardo, por ejemplo, en el Objeto Empresa, en una  
> variable de instancia de clase, una colección de Clientes, cómo  
> transcribo esta información a un DataGrid?.
> 
Para la parte de las vistas usa MGM (model-gui-mediator) para
relacionar los objetos con cualquier control gráfico.
(http://www.andypatterns.com/index.php/design_patterns/model_gui_mediator_pattern)
(http://opensoft.homeip.net/articles/)

Si te interesa para tener una idea, el código se encuentra en la
carpeta tiopf2 -> Trunk -> GUI
en las unidades timediators.pas, tilistmediators.pas y en la carpeta
core las unidades tibasemediator.pas,tiformmediator.pas

> Alguien podría echarme un cable con ésto?
> 
> 




More information about the Lazarus-es mailing list