Ver Mensaje Individual
  #5  
Antiguo 11-05-2006
Punzo Punzo is offline
Miembro
 
Registrado: abr 2006
Posts: 96
Reputación: 19
Punzo Va por buen camino
Cita:
Empezado por Al González
¡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.
Basicamente es eso, crear un componente derivado de Cxgrid que cada vez que se agregue una vista cambie el valor de la propiedad StyleSheet, por el valor de una nueva propiedad llamada DefaultStyleSheet (que previamente se creo).
Responder Con Cita