Cita:
Empezado por Al González
Ah, ahora sí te comprendo Poyo. Pues precisamente eso es a lo que yo llamo herencia insertada, pero desafortunadamente no existe en Delphi y creo que pocos lenguajes de programación lo tienen.
Alguna vez Román me comentó en otro hilo (busca "herencia insertada") que Java Script (no Java, aclaro) sí tenía esa capacidad, pero no he estudiado cómo es eso ahí.
|
Si no me equivoco, creo que el concepto, más allá de la técnica utilizada, se llama
refléxión.
Yo he visto hacer cosas como estás.... (no lo de la "herencia insertada", pero sí lo de agregar la propiedad publicada). lástima que estoy corto de tiempo para investigar... a ver... (desempolvando links agendados... y luego de toser un poco por el polvo...)
Para aquellos que les interese acá hay una punta:
http://blogs.codegear.com/abauer/2007/02/24/32322
http://hallvards.blogspot.com/2007/0...a-part_11.html
http://dn.codegear.com/article/33448
Lo estube chusmeando un poco y es algo engorroso.
en DesignIntf.pas está definido ISelectionPropertyFilter (de paso lean el comentario que hay en el Unit)
la idea es implementarlo para manipular la lista de propiedades del objeto, ya sea para agregar como para quitar.
Es interesante las cosas que se pueden hacer (como ser, opcionalmente, mostrar u ocultar propiedades o categorías de las mismas)
Para agregar es lo engorroso.
Lo que no me queda claro lo de Streaming (habitualmente persistencia mediante .DFM) usando:
TPersistent.DefineProperties(Filer: TFiler); virtual;
Si bien entiendo cómo y para qué es esa función, no veo cómo aplicarlo en este caso, si al form o a la clase... si es a la clase, la tengo que modificar o se puede hacer con un Class Helper? habrá que probar...
Será para cuando pueda.
Buen fin de semana. Me voy a pasarla al
Delta del Rio Paraná de la Palmas.