Al González |
11-05-2006 02:25:17 |
¡Hola a todos!
Conozco a Iván Punzo en persona y sé a grandes rasgos lo que está buscando. Desea crear un componente derivado de TcxGrid, que intercepte el momento en que otro tipo de componente, de clase TcxGridDBTableView, es agregado a la forma. El escenario general es este:
Los componentes rejilla TcxGrid suelen contener (visualmente) en su interior a otros componentes llamados "vistas" (normalmente de tipo TcxGridDBTableView). Tanto la rejilla TcxGrid como las vistas TcxGridDBTableView son componentes que la forma contenedora adueña. En tiempo de diseño, el programador puede agregar a la rejilla TcxGrid tantas vistas TcxGridDBTableView como desee (es como cuando se agrega un nuevo elemento a una colección, o un nuevo campo persistente a una tabla).
Iván desea interceptar el momento en que una nueva vista es agregada a la rejilla para asignarle cierto valor predeterminado a una de sus propiedades; algo así como «Bienvenido nuevo objeto vista, póngase este abrigo porque aquí hace frío». Como no parece haber un método virtual que específicamente esté relacionado con esa acción, le sugerí redefinir el método Notification. Sabemos que una alternativa es redefinir la clase TcxGridDBTableView en lugar de la clase TcxGrid, pero ese camino está descartado por razones particulares del caso en cuestión.
Lo que Iván necesita es comprender cómo debe utilizar el método redefinido Notification para ponerle su abrigo a cada nueva vista que es creada en la rejilla. Cabe recordar que la rejilla TcxGrid no es el dueño (Owner) de las vistas que contiene, el dueño de éstas es la forma misma donde está la rejilla (así como una forma puede adueñar a un TTable y también a sus campos persistentes).
Un abrazo visto.
Al González. :)
|