[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